From da53a3c6e6c27464b942e0acb045b8eeaf0e6428 Mon Sep 17 00:00:00 2001 From: muyuuuu Date: Sat, 14 Aug 2021 11:52:07 +0000 Subject: [PATCH] fixup bug as description in #39 --- include/ThreadPool.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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(); + } + } + } } };