fix for mac & use atomic store on write side to avoid race

This commit is contained in:
Dale Weiler
2022-03-11 08:35:23 -05:00
parent 7f845bb165
commit 52df80dccd

View File

@@ -44,7 +44,7 @@ _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^
t.procedure(t)
t.flags += { .Done }
intrinsics.atomic_store(&t.flags, t.flags + { .Done });
sync.unlock(&t.mutex)
@@ -105,7 +105,7 @@ _start :: proc(t: ^Thread) {
}
_is_done :: proc(t: ^Thread) -> bool {
return intrinsics.atomic_and(&t.flags, { .Done }) != nil
return .Done in intrinsics.atomic_load(&t.flags);
}
_join :: proc(t: ^Thread) {