Fix thread pool join.

This commit is contained in:
Jeroen van Rijn
2022-05-13 15:03:40 +02:00
parent f50399e394
commit 7e0c359f99

View File

@@ -39,6 +39,7 @@ Pool :: struct {
threads: []^Thread,
tasks: [dynamic]Task,
tasks_done: [dynamic]Task,
}
@@ -102,8 +103,15 @@ pool_join :: proc(pool: ^Pool) {
yield()
for t in pool.threads {
join(t)
started_count: int
for started_count < len(pool.threads) {
started_count = 0
for t in pool.threads {
if .Started in t.flags {
join(t)
started_count += 1
}
}
}
}