Simplify thread_pool_wait_to_process

This commit is contained in:
gingerBill
2021-07-10 21:50:19 +01:00
parent ed8a6f872d
commit 8a6b743d2a

View File

@@ -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)) {