summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-07-29 19:38:43 +0000
committerMarc Laukien <marc@zeroc.com>2002-07-29 19:38:43 +0000
commit6366051efa71bddd18a3d078a487b25631f749ef (patch)
tree3e557d3b0003822f53f0c77a62fa582ecb3eada3 /cpp/src
parentfixed cyclic dependency (diff)
downloadice-6366051efa71bddd18a3d078a487b25631f749ef.tar.bz2
ice-6366051efa71bddd18a3d078a487b25631f749ef.tar.xz
ice-6366051efa71bddd18a3d078a487b25631f749ef.zip
warning
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/CommunicatorI.cpp12
-rw-r--r--cpp/src/Ice/ConnectionFactory.cpp2
2 files changed, 14 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;
}
}
diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp
index e2e630dccca..0cd4faa5dc4 100644
--- a/cpp/src/Ice/ConnectionFactory.cpp
+++ b/cpp/src/Ice/ConnectionFactory.cpp
@@ -234,6 +234,7 @@ IceInternal::OutgoingConnectionFactory::destroy()
{
return;
}
+
#ifdef _STLP_BEGIN_NAMESPACE
// voidbind2nd is an STLport extension for broken compilers in IceUtil/Functional.h
for_each(_connections.begin(), _connections.end(),
@@ -244,6 +245,7 @@ IceInternal::OutgoingConnectionFactory::destroy()
bind2nd(Ice::secondVoidMemFun1<EndpointPtr, Connection, Connection::DestructionReason>
(&Connection::destroy), Connection::CommunicatorDestroyed));
#endif
+
_connections.clear();
_instance = 0;
}