diff options
Diffstat (limited to 'cpp/src/Ice/ObjectAdapterI.cpp')
-rw-r--r-- | cpp/src/Ice/ObjectAdapterI.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp index a623aa1318b..b4dac6d00e3 100644 --- a/cpp/src/Ice/ObjectAdapterI.cpp +++ b/cpp/src/Ice/ObjectAdapterI.cpp @@ -127,6 +127,13 @@ Ice::ObjectAdapterI::deactivate() for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(), Ice::voidMemFun(&IncomingConnectionFactory::destroy)); + // + // Don't do a _incomingConnectionFactories.clear()! + // _incomingConnectionFactories is immutable. Even if all elements + // are destroyed, the elements are still needed by + // waitForDeactivate(). + // + _instance->outgoingConnectionFactory()->removeAdapter(this); _activeServantMap.clear(); |