aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/thread/thread_pool.odin13
1 files changed, 7 insertions, 6 deletions
diff --git a/core/thread/thread_pool.odin b/core/thread/thread_pool.odin
index d27ae4255..820de8ad4 100644
--- a/core/thread/thread_pool.odin
+++ b/core/thread/thread_pool.odin
@@ -101,13 +101,14 @@ pool_join :: proc(pool: ^Pool) {
intrinsics.atomic_store(&pool.is_running, false)
sync.post(&pool.sem_available, len(pool.threads))
- // Because we already stopped the pool, there's no need to take a lock here.
- done_count: int
- for done_count < len(pool.threads) {
- done_count = 0
+ yield()
+
+started_count: int
+ for started_count < len(pool.threads) {
+ started_count = 0
for t in pool.threads {
- if .Done in t.flags {
- done_count += 1
+ if .Started in t.flags {
+ started_count += 1
if .Joined not_in t.flags {
join(t)
}