summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ThreadPool.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-06-14 16:59:42 +0000
committerMarc Laukien <marc@zeroc.com>2002-06-14 16:59:42 +0000
commit3766cdd886b63c1c7ec92c8e4644de3da137a512 (patch)
tree2f1a0a61b0781c2bdc530bc9645971b58d4195df /cpp/src/Ice/ThreadPool.cpp
parentfixes (diff)
downloadice-3766cdd886b63c1c7ec92c8e4644de3da137a512.tar.bz2
ice-3766cdd886b63c1c7ec92c8e4644de3da137a512.tar.xz
ice-3766cdd886b63c1c7ec92c8e4644de3da137a512.zip
fixes
Diffstat (limited to 'cpp/src/Ice/ThreadPool.cpp')
-rw-r--r--cpp/src/Ice/ThreadPool.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp
index 98166dbd201..c372fbb29de 100644
--- a/cpp/src/Ice/ThreadPool.cpp
+++ b/cpp/src/Ice/ThreadPool.cpp
@@ -134,6 +134,7 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, bool server) :
_multipleThreads = true;
}
+ __setNoDelete(true);
try
{
for (int i = 0 ; i < _threadNum ; ++i)
@@ -151,8 +152,15 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, bool server) :
destroy();
joinWithAllThreads();
+ __setNoDelete(false);
throw;
}
+ catch (...)
+ {
+ __setNoDelete(false);
+ throw;
+ }
+ __setNoDelete(false);
}
IceInternal::ThreadPool::~ThreadPool()