diff options
Diffstat (limited to 'cpp/src/Ice/ObjectAdapterI.cpp')
-rw-r--r-- | cpp/src/Ice/ObjectAdapterI.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp index 1779e93bdc6..c0059fe6b8f 100644 --- a/cpp/src/Ice/ObjectAdapterI.cpp +++ b/cpp/src/Ice/ObjectAdapterI.cpp @@ -778,6 +778,31 @@ Ice::ObjectAdapterI::flushAsyncBatchRequests(const CommunicatorBatchOutgoingAsyn } void +Ice::ObjectAdapterI::updateConnectionObservers() +{ + vector<IncomingConnectionFactoryPtr> f; + { + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this); + f = _incomingConnectionFactories; + } + for_each(f.begin(), f.end(), Ice::voidMemFun(&IncomingConnectionFactory::updateConnectionObservers)); +} + +void +Ice::ObjectAdapterI::updateThreadObservers() +{ + ThreadPoolPtr threadPool; + { + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this); + threadPool = _threadPool; + } + if(threadPool) + { + threadPool->updateObservers(); + } +} + +void Ice::ObjectAdapterI::incDirectCount() { IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this); |