Does giving roscore RT priority avoid the problem? If so, then perhaps the deadlock is caused by the node trying to deregister with the master, but the master never gets a chance to run.
Alternatively, does calling spin from the node's main, without the extra thread, avoid the problem? If so, then perhaps the problem is in thread scheduling, with main waiting for the other thread, but not giving it a chance to run. Do threads automatically inherit their parent's priority?
--
You received this message because you are subscribed to the Google Groups "ros-sig-embedded" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-embedd...@googlegroups.com.
To post to this group, send email to ros-sig-...@googlegroups.com.
Visit this group at http://groups.google.com/group/ros-sig-embedded.
For more options, visit https://groups.google.com/d/optout.
Perhaps there's a busy loop in the deregistration XML/RPC interaction. I have a distant memory of modifying the event loop of xmlrpcpp to allow asynchronous interactions. I could imagine that capability being used in a busy loop at shutdown.