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