diff --git a/src/thread_pool.cpp b/src/thread_pool.cpp index 9e178b833..fdd86a3e0 100644 --- a/src/thread_pool.cpp +++ b/src/thread_pool.cpp @@ -124,6 +124,13 @@ void thread_pool_do_work(ThreadPool *pool, WorkerTask *task) { } void thread_pool_wait_to_process(ThreadPool *pool) { + if (pool->thread_count == 0) { + WorkerTask task = {}; + while (thread_pool_try_and_pop_task(pool, &task)) { + thread_pool_do_work(pool, &task); + } + return; + } while (pool->tasks.count.load(std::memory_order_relaxed) > 0 || gb_atomic32_load(&pool->processing_work_count) != 0) { WorkerTask task = {}; if (thread_pool_try_and_pop_task(pool, &task)) {