diff options
Diffstat (limited to 'cppe/src')
-rw-r--r-- | cppe/src/IceE/Incoming.cpp | 4 | ||||
-rw-r--r-- | cppe/src/IceE/ObjectAdapter.cpp | 8 |
2 files changed, 5 insertions, 7 deletions
diff --git a/cppe/src/IceE/Incoming.cpp b/cppe/src/IceE/Incoming.cpp index fd110d6f71c..f9de4efb110 100644 --- a/cppe/src/IceE/Incoming.cpp +++ b/cppe/src/IceE/Incoming.cpp @@ -42,6 +42,10 @@ IceInternal::Incoming::setAdapter(const Ice::ObjectAdapterPtr& adapter) if(_adapter) { _servantManager = _adapter->getServantManager().get(); + if(!_servantManager) + { + _adapter = 0; + } } else { diff --git a/cppe/src/IceE/ObjectAdapter.cpp b/cppe/src/IceE/ObjectAdapter.cpp index dce9f66f87b..0b3ca50e412 100644 --- a/cppe/src/IceE/ObjectAdapter.cpp +++ b/cppe/src/IceE/ObjectAdapter.cpp @@ -571,13 +571,7 @@ Ice::ObjectAdapter::decDirectCount() ServantManagerPtr Ice::ObjectAdapter::getServantManager() const { - // No mutex lock necessary, _instance is - // immutable after creation until it is removed in - // waitForDeactivate(). - - // Not check for deactivation here! - - assert(_instance); // Must not be called after waitForDeactivate(). + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this); return _servantManager; } |