diff options
Diffstat (limited to 'cpp/src/Ice/CommunicatorI.cpp')
-rw-r--r-- | cpp/src/Ice/CommunicatorI.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cpp/src/Ice/CommunicatorI.cpp b/cpp/src/Ice/CommunicatorI.cpp index 6b1c2c1e787..81bf20ddcad 100644 --- a/cpp/src/Ice/CommunicatorI.cpp +++ b/cpp/src/Ice/CommunicatorI.cpp @@ -32,8 +32,20 @@ Ice::CommunicatorI::destroy() if(_instance) { + _serverThreadPool = 0; + + LoggerPtr logger = _instance->logger(); + _instance->objectAdapterFactory()->shutdown(); _instance->destroy(); + + if(_instance->__getRef() > 1) + { + Warning warn(logger); + warn << "memory leak in the Ice core:\n"; + warn << "IceInteral::Instance is not deleted after Ice::Communicator::destroy()"; + } + _instance = 0; } } |