summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2004-12-30 21:42:25 +0000
committerMark Spruiell <mes@zeroc.com>2004-12-30 21:42:25 +0000
commitdf63c137524b4e0ca232a465d95ca134765d98a2 (patch)
treec2b00430005f441681b057fffaeffad92200fb3b /cpp/src
parentImproved diagnostics for invalid metadata. (diff)
downloadice-df63c137524b4e0ca232a465d95ca134765d98a2.tar.bz2
ice-df63c137524b4e0ca232a465d95ca134765d98a2.tar.xz
ice-df63c137524b4e0ca232a465d95ca134765d98a2.zip
wait until acceptor is closed to prevent an assertion failure in
ThreadPool::destroy
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;