pool_join should look at .Done.

This commit is contained in:
Jeroen van Rijn
2022-05-14 13:18:38 +02:00
parent 42371f7aea
commit 6c0e2e2a53
+5 -8
View File
@@ -101,16 +101,13 @@ pool_join :: proc(pool: ^Pool) {
intrinsics.atomic_store(&pool.is_running, false)
sync.post(&pool.sem_available, len(pool.threads))
yield()
// Because we already stopped the pool, there's no need to take a lock here.
started_count: int
for started_count < len(pool.threads) {
started_count = 0
done_count: int
for done_count < len(pool.threads) {
done_count = 0
for t in pool.threads {
if .Started in t.flags {
started_count += 1
if .Done in t.flags {
done_count += 1
if .Joined not_in t.flags {
join(t)
}