fix: make pool_finish not hang when pool_start is not called

This commit is contained in:
Bruno Panuto
2025-06-16 00:28:43 -03:00
parent 74f70bfbcb
commit 6874a4cdb0

View File

@@ -120,6 +120,20 @@ pool_join :: proc(pool: ^Pool) {
yield()
unstarted_count: int
for t in pool.threads {
flags := intrinsics.atomic_load(&t.flags)
if .Started not_in flags {
unstarted_count += 1
}
}
// most likely the user forgot to call `pool_start`
// exit here, so we don't hang forever
if len(pool.threads) == unstarted_count {
return
}
started_count: int
for started_count < len(pool.threads) {
started_count = 0