diff options
Diffstat (limited to 'src/libutil/thread-pool.cc')
-rw-r--r-- | src/libutil/thread-pool.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/libutil/thread-pool.cc b/src/libutil/thread-pool.cc index 819aed748340..743038b588a7 100644 --- a/src/libutil/thread-pool.cc +++ b/src/libutil/thread-pool.cc @@ -55,9 +55,10 @@ void ThreadPool::process() work(); } catch (std::exception & e) { auto state_(state.lock()); - if (state_->exception) - printMsg(lvlError, format("error: %s") % e.what()); - else { + if (state_->exception) { + if (!dynamic_cast<Interrupted*>(&e)) + printMsg(lvlError, format("error: %s") % e.what()); + } else { state_->exception = std::current_exception(); wakeup.notify_all(); } |