|
@@ -10,7 +10,7 @@ import "core:time"
|
|
|
|
|
|
_futex_wait :: proc "contextless" (f: ^Futex, expected: u32) -> bool {
|
|
|
when !intrinsics.has_target_feature("atomics") {
|
|
|
- _panic("usage of `core:sync` requires the `-target-feature:\"atomics\"` or a `-microarch` that supports it")
|
|
|
+ panic_contextless("usage of `core:sync` requires the `-target-feature:\"atomics\"` or a `-microarch` that supports it")
|
|
|
} else {
|
|
|
s := intrinsics.wasm_memory_atomic_wait32((^u32)(f), expected, -1)
|
|
|
return s != 0
|
|
@@ -19,7 +19,7 @@ _futex_wait :: proc "contextless" (f: ^Futex, expected: u32) -> bool {
|
|
|
|
|
|
_futex_wait_with_timeout :: proc "contextless" (f: ^Futex, expected: u32, duration: time.Duration) -> bool {
|
|
|
when !intrinsics.has_target_feature("atomics") {
|
|
|
- _panic("usage of `core:sync` requires the `-target-feature:\"atomics\"` or a `-microarch` that supports it")
|
|
|
+ panic_contextless("usage of `core:sync` requires the `-target-feature:\"atomics\"` or a `-microarch` that supports it")
|
|
|
} else {
|
|
|
s := intrinsics.wasm_memory_atomic_wait32((^u32)(f), expected, i64(duration))
|
|
|
return s != 0
|
|
@@ -28,7 +28,7 @@ _futex_wait_with_timeout :: proc "contextless" (f: ^Futex, expected: u32, durati
|
|
|
|
|
|
_futex_signal :: proc "contextless" (f: ^Futex) {
|
|
|
when !intrinsics.has_target_feature("atomics") {
|
|
|
- _panic("usage of `core:sync` requires the `-target-feature:\"atomics\"` or a `-microarch` that supports it")
|
|
|
+ panic_contextless("usage of `core:sync` requires the `-target-feature:\"atomics\"` or a `-microarch` that supports it")
|
|
|
} else {
|
|
|
loop: for {
|
|
|
s := intrinsics.wasm_memory_atomic_notify32((^u32)(f), 1)
|
|
@@ -41,7 +41,7 @@ _futex_signal :: proc "contextless" (f: ^Futex) {
|
|
|
|
|
|
_futex_broadcast :: proc "contextless" (f: ^Futex) {
|
|
|
when !intrinsics.has_target_feature("atomics") {
|
|
|
- _panic("usage of `core:sync` requires the `-target-feature:\"atomics\"` or a `-microarch` that supports it")
|
|
|
+ panic_contextless("usage of `core:sync` requires the `-target-feature:\"atomics\"` or a `-microarch` that supports it")
|
|
|
} else {
|
|
|
loop: for {
|
|
|
s := intrinsics.wasm_memory_atomic_notify32((^u32)(f), ~u32(0))
|