diff --git a/include/ThreadPool.h b/include/ThreadPool.h index b7bf84d..92a5446 100644 --- a/include/ThreadPool.h +++ b/include/ThreadPool.h @@ -36,6 +36,18 @@ class ThreadPool { func(); } } + + // If the task queue is not empty, continue obtain task from task queue, + // the multithread continues execution until the queue is empty + while (!m_pool->m_queue.empty()) { + { + std::unique_lock lock(m_pool->m_conditional_mutex); + dequeued = m_pool->m_queue.dequeue(func); + if (dequeued) { + func(); + } + } + } } };