summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ThreadPool.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-05-28 13:07:18 +0000
committerMarc Laukien <marc@zeroc.com>2002-05-28 13:07:18 +0000
commit99ee6b8f2696150849b727fd9246fe5ac6ff621b (patch)
treed8548a0bdc9159b88ebf3bb669e5416161180e84 /cpp/src/Ice/ThreadPool.cpp
parentUpdated with the verification fix - now the SingleCertificateVerifier will (diff)
downloadice-99ee6b8f2696150849b727fd9246fe5ac6ff621b.tar.bz2
ice-99ee6b8f2696150849b727fd9246fe5ac6ff621b.tar.xz
ice-99ee6b8f2696150849b727fd9246fe5ac6ff621b.zip
fixes
Diffstat (limited to 'cpp/src/Ice/ThreadPool.cpp')
-rw-r--r--cpp/src/Ice/ThreadPool.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp
index 8c5b0faa5bb..98166dbd201 100644
--- a/cpp/src/Ice/ThreadPool.cpp
+++ b/cpp/src/Ice/ThreadPool.cpp
@@ -142,13 +142,15 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, bool server) :
_threads.push_back(thread->start());
}
}
- catch (const IceUtil::Exception&)
+ catch (const IceUtil::Exception& ex)
{
- //
- // TODO: This doesn't look correct to me -- where are the
- // started threads joined with in the event of a failure?
- //
+ {
+ Error out(_instance->logger());
+ out << "cannot create threads for thread pool:\n" << ex;
+ }
+
destroy();
+ joinWithAllThreads();
throw;
}
}