summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ObjectAdapterFactory.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-07-30 18:51:27 +0000
committerMarc Laukien <marc@zeroc.com>2002-07-30 18:51:27 +0000
commit3414f16fd4d530f6faf167b7f98434bee805a073 (patch)
treec8b6e9744ba53a84c82f94c305cb967cdf298809 /cpp/src/Ice/ObjectAdapterFactory.cpp
parentRemoved IceBox.ServiceManager property. (diff)
downloadice-3414f16fd4d530f6faf167b7f98434bee805a073.tar.bz2
ice-3414f16fd4d530f6faf167b7f98434bee805a073.tar.xz
ice-3414f16fd4d530f6faf167b7f98434bee805a073.zip
fixed mutex bug
Diffstat (limited to 'cpp/src/Ice/ObjectAdapterFactory.cpp')
-rw-r--r--cpp/src/Ice/ObjectAdapterFactory.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/cpp/src/Ice/ObjectAdapterFactory.cpp b/cpp/src/Ice/ObjectAdapterFactory.cpp
index c5a66d0b33a..0f5a1b52c13 100644
--- a/cpp/src/Ice/ObjectAdapterFactory.cpp
+++ b/cpp/src/Ice/ObjectAdapterFactory.cpp
@@ -24,8 +24,10 @@ void
IceInternal::ObjectAdapterFactory::shutdown()
{
IceUtil::RecMutex::Lock sync(*this);
+
for_each(_adapters.begin(), _adapters.end(),
Ice::secondVoidMemFun<string, ObjectAdapter>(&ObjectAdapter::deactivate));
+
_adapters.clear();
}
@@ -33,6 +35,7 @@ ObjectAdapterPtr
IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const string& endpts)
{
IceUtil::RecMutex::Lock sync(*this);
+
map<string, ObjectAdapterIPtr>::iterator p = _adapters.find(name);
if(p != _adapters.end())
{
@@ -47,6 +50,8 @@ IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const
ObjectAdapterPtr
IceInternal::ObjectAdapterFactory::findObjectAdapter(const ObjectPrx& proxy)
{
+ IceUtil::RecMutex::Lock sync(*this);
+
for(map<string, ObjectAdapterIPtr>::iterator p = _adapters.begin(); p != _adapters.end(); ++p)
{
if(p->second->isLocal(proxy))