summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ThreadPool.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/ThreadPool.cpp')
-rw-r--r--cpp/src/Ice/ThreadPool.cpp10
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);