I created a tool using Opensplice DDS 6.7 to create a reader, wait for the callback to execute on the read message, and print the value of the message. We use Google Protobuf for our message structures. After printing the value of the message and executing return 0;
, the program takes nearly 5 seconds to actually terminate.
Stepping through GDB shows many calls to destructors in Protobuf and thread joins from opensplice. Is there a unix tool or GDB tool to analyze wall clock execution time of threads/functions or number of times a function is called to help narrow down which library, or the wrapper, is causing the hang on destruction?