![]() Cyclone's original code for dds_create_domain() appears to create a domain entity that is automatically deleted when the last attached participant disappears. In reality, it leaks a reference while returning DDS_RETCODE_OK, making it appear as-if it is a regular entity that remains into existence until explicitly deleted. The RMW code assumed that it would be automatically deleted when the last node was destroyed and that a subsequent call to rmw_create_node could create the domain anew. This then fails with "precondition not met". In an upcoming fixed version of dds_create_domain() the domain entities will behave normally (return a handle, require an explicit delete). This commit provides a workaround for the bug in the original implementation: by recovering the handle from the first participant the preceding commits that were intended to future-proof the code will ensure that the entity now gets deleted explicitly. Signed-off-by: Erik Boasson <eb@ilities.com> |
||
---|---|---|
.. | ||
include/rmw_cyclonedds_cpp | ||
src | ||
CHANGELOG.rst | ||
CMakeLists.txt | ||
package.xml | ||
rmw_cyclonedds_cpp-extras.cmake |