You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This macro implements common functions like z_check, z_null etc. But as this macro is used on structure with _val field of unknown (platform-dependent) type, like _z_task_t which is defined differently for each platform, this macro just provides empy implementation for these functions.
This makes our API incorrect. We guarantee that z_drop after z_null is safe, as well as double z_drop. But this is not the case for this implementation.
The proposed solution is just don't support double drop for these types. This is necessary for C++ wrapper only, but these types are not supposed to be used in Zenoh C++ - the C++ have it's own support for these primitives (thread, mutex, etc).
The only thing to do then is just to remove the dummy functions z_null / z_check for these types. This will be the signal that these types are specific and doesn't have "gravestone" state
Describe the release item
This macro implements common functions like
z_check
,z_null
etc. But as this macro is used on structure with_val
field of unknown (platform-dependent) type, like_z_task_t
which is defined differently for each platform, this macro just provides empy implementation for these functions.This makes our API incorrect. We guarantee that
z_drop
afterz_null
is safe, as well as doublez_drop
. But this is not the case for this implementation.See also discussion in eclipse-zenoh/zenoh-c#492
The text was updated successfully, but these errors were encountered: