summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/ConnectionFactory.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp
index 0c9c531e009..1c3f8e53766 100644
--- a/cpp/src/Ice/ConnectionFactory.cpp
+++ b/cpp/src/Ice/ConnectionFactory.cpp
@@ -538,13 +538,14 @@ IceInternal::IncomingConnectionFactory::waitUntilFinished()
IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
//
- // First we wait until the factory is destroyed.
+ // First we wait until the factory is destroyed. If we are using
+ // an acceptor, we also wait for it to be closed.
//
- while(_state != StateClosed)
+ while(_state != StateClosed || _acceptor)
{
wait();
}
-
+
threadPerIncomingConnectionFactory = _threadPerIncomingConnectionFactory;
_threadPerIncomingConnectionFactory = 0;