summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ObjectAdapterI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-06-12 08:44:39 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-06-12 08:44:39 +0000
commit7c24ee06119f7e9b44efb1c924535a153cf04410 (patch)
tree9a0dbf857d12b73897e5fed2857477ecb3c127d6 /cpp/src/Ice/ObjectAdapterI.cpp
parentAdded support for allocatable objects (diff)
downloadice-7c24ee06119f7e9b44efb1c924535a153cf04410.tar.bz2
ice-7c24ee06119f7e9b44efb1c924535a153cf04410.tar.xz
ice-7c24ee06119f7e9b44efb1c924535a153cf04410.zip
Fixed bug 1045
Diffstat (limited to 'cpp/src/Ice/ObjectAdapterI.cpp')
-rw-r--r--cpp/src/Ice/ObjectAdapterI.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp
index 6e4b3f54b9c..b2c19c37f9b 100644
--- a/cpp/src/Ice/ObjectAdapterI.cpp
+++ b/cpp/src/Ice/ObjectAdapterI.cpp
@@ -306,7 +306,7 @@ Ice::ObjectAdapterI::waitForDeactivate()
// Now it's also time to clean up our servants and servant
// locators.
//
- if(_servantManager)
+ if(_instance) // Don't destroy twice.
{
_servantManager->destroy();
}
@@ -342,7 +342,6 @@ Ice::ObjectAdapterI::waitForDeactivate()
//
_instance = 0;
_threadPool = 0;
- _servantManager = 0;
_communicator = 0;
_routerEndpoints.clear();
_routerInfo = 0;
@@ -689,8 +688,9 @@ Ice::ObjectAdapterI::getThreadPool() const
ServantManagerPtr
Ice::ObjectAdapterI::getServantManager() const
{
- IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
-
+ //
+ // No mutex lock necessary, _servantManager is immutable.
+ //
return _servantManager;
}
@@ -837,8 +837,8 @@ Ice::ObjectAdapterI::~ObjectAdapterI()
}
else
{
+ //assert(!_servantManager); // We don't clear this reference, it needs to be immutable.
assert(!_threadPool);
- assert(!_servantManager);
assert(!_communicator);
assert(_incomingConnectionFactories.empty());
assert(_directCount == 0);