Hello !
Version used: I am using rti DDS 5.2.3.
Language used: C++.
Context: My application is a plugin for a software, I do not have access to the source code of this particular software.
Problem: When we are about to turn off the software, DDSTheParticipantFactory->delete_participant(...) return nothing and sleep for 1000 ms forever.
About my application:
Initialization (simplified, in order to let you know about what was inside my participant):
// Creates participant.
m_pDomainParticipant = DDSDomainParticipantFactory::get_instance()->create_participant(...);
// Registers Types.
DdsMyStruct1TypeSupport::register_type(...);
DdsMyStruct2TypeSupport::register_type(...);
// Creates MyStruct1 Topic.
m_pMyStruct1Topic = m_pDomainParticipant->create_topic();
// Creates filtered topic.
m_pMyStruct1FilteredTopic = m_pDomainParticipant->create_contentfilteredtopic(...);
// Creates MyStruct2 topic.
m_pMyStruct2Topic = m_pDomainParticipant->create_topic();
// Creates subscriber.
m_pSubscriber = m_pDomainParticipant->create_subscriber();
// Creates publisher.m_pPublisher = m_pDomainParticipant->create_publisher(...);
// Create DataReader.
m_pMyStruct1DataReader = (DdsMyStruct1DataReader*) m_pSubscriber->create_datareader(...);
// Create DataWriter
m_pMyStruct2DataWriter = (DdsMyStruct2DataWriter*) m_pPublisher->create_datawriter(...);
Destruction (simplified):
m_pDomainParticipant->delete_contained_entities();
DDSTheParticipantFactory->delete_participant(m_pDomainParticipant); // BUG
DDSDomainParticipantFactory::finalize_instance();
I have seen two topics with the same issue but I still don't understand my problem.
I tried to call WSAStartup
before my cleaning method and WSACleanup()
but it changes nothing.
Any help would be highly appreciated!
Please find attached a DDS log with verbosity set to NDDS_CONFIG_LOG_VERBOSITY_STATUS_ALL. The scenario for this log file is a start and close of the application.
Sorry for my clunky english :)
Attachment | Size |
---|---|
ddslogger.txt | 32.59 KB |
Hello,
I found this [here] forum thread that is about the same problem. Maybe that can help you?
Best,
Gianpiero