diff --git a/src/library/mt_task_queue.cpp b/src/library/mt_task_queue.cpp index 90b06874a7..bf12f67484 100644 --- a/src/library/mt_task_queue.cpp +++ b/src/library/mt_task_queue.cpp @@ -76,7 +76,11 @@ void mt_task_queue::spawn_worker() { unique_lock lock(m_mutex); scoped_add dec_required(m_required_workers, -1); while (true) { - if (m_shutting_down) return; + if (m_shutting_down) { + run_thread_finalizers(); + run_post_thread_finalizers(); + return; + } if (m_required_workers < 0) { scoped_add inc_required(m_required_workers, +1); scoped_add inc_sleeping(m_sleeping_workers, +1);