Jeroen van Rijn 3 years ago
parent
commit
85edcf9cc2
1 changed files with 7 additions and 6 deletions
  1. 7 6
      core/thread/thread_pool.odin

+ 7 - 6
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)
 				}