diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/ConnectionFactory.cpp | 7 |
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; |