/// <summary>
/// Kills all the things. Called by checkForShutdown
/// </summary>
private static void _shutdown()
{
lock (shutting_down_mutex)
{
if (shutting_down)
{
return;
}
shutting_down = true;
_ok = false;
EDB.WriteLine("ROS is shutting down.");
GlobalCallbackQueue.Disable();
GlobalCallbackQueue.Clear();
if (started)
{
TopicManager.Instance.shutdown();
ServiceManager.Instance.shutdown();
PollManager.Instance.shutdown();
XmlRpcManager.Instance.shutdown();
if (rosoutappender != null)
{
rosoutappender.shutdown();
}
}
started = false;
_ok = false;
}
}