![]() 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> |
||
---|---|---|
.. | ||
deserialization_exception.cpp | ||
exception.cpp | ||
graphrhc.cpp | ||
namespace_prefix.cpp | ||
namespace_prefix.hpp | ||
rmw_cyclonedds_topic.idl | ||
rmw_node.cpp | ||
serdata.cpp | ||
serdes.cpp | ||
u16string.cpp |