Ver código fonte

Fix data race in `atomic_sema_wait_with_timeout`

Feoramund 1 ano atrás
pai
commit
cbd4d5e765
1 arquivos alterados com 1 adições e 1 exclusões
  1. 1 1
      core/sync/primitives_atomic.odin

+ 1 - 1
core/sync/primitives_atomic.odin

@@ -361,7 +361,7 @@ atomic_sema_wait_with_timeout :: proc "contextless" (s: ^Atomic_Sema, duration:
 			if !futex_wait_with_timeout(&s.count, u32(original_count), remaining) {
 				return false
 			}
-			original_count = s.count
+			original_count = atomic_load_explicit(&s.count, .Relaxed)
 		}
 		if original_count == atomic_compare_exchange_strong_explicit(&s.count, original_count, original_count-1, .Acquire, .Acquire) {
 			return true