diff options
Diffstat (limited to 'cpp/src/Ice/ThreadPool.cpp')
-rw-r--r-- | cpp/src/Ice/ThreadPool.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp index 4c1f1100aed..60d75341c32 100644 --- a/cpp/src/Ice/ThreadPool.cpp +++ b/cpp/src/Ice/ThreadPool.cpp @@ -475,7 +475,15 @@ IceInternal::ThreadPool::run() // Notify a handler about it's removal from the thread // pool. // - handler->finished(self); // "self" is faster than "this", as the reference count is not modified. + try + { + handler->finished(self); // "self" is faster than "this", as the reference count is not modified. + } + catch(const LocalException& ex) + { + Error out(_instance->logger()); + out << "exception while calling finished():\n" << handler->toString() << '\n' << ex; + } { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); |