private void Destruct() { lock (gate) { --referenceCount; } callbackQueue = null; if (referenceCount == 0 && initializedRos) { ROS.Shutdown(); } }