* feat: implement memory.atomic.notify,wait32,wait64 Added the parking_spot crate, which provides the needed registry for the operations. Signed-off-by: Harald Hoyer <harald@profian.com> * fix: change trap message for HeapMisaligned The threads spec test wants "unaligned atomic" instead of "misaligned memory access". Signed-off-by: Harald Hoyer <harald@profian.com> * tests: add test for atomic wait on non-shared memory Signed-off-by: Harald Hoyer <harald@profian.com> * tests: add tests/spec_testsuite/proposals/threads without pooling and reference types. Also "shared_memory" is added to the "spectest" interface. Signed-off-by: Harald Hoyer <harald@profian.com> * tests: add atomics_notify.wast checking that notify with 0 waiters returns 0 on shared and non-shared memory. Signed-off-by: Harald Hoyer <harald@profian.com> * tests: add tests for atomic wait on shared memory - return 2 - timeout for 0 - return 2 - timeout for 1000ns - return 1 - invalid value Signed-off-by: Harald Hoyer <harald@profian.com> * fixup! feat: implement memory.atomic.notify,wait32,wait64 Signed-off-by: Harald Hoyer <harald@profian.com> * fixup! feat: implement memory.atomic.notify,wait32,wait64 Signed-off-by: Harald Hoyer <harald@profian.com> Signed-off-by: Harald Hoyer <harald@profian.com>
19 lines
497 B
Plaintext
19 lines
497 B
Plaintext
;; From https://github.com/bytecodealliance/wasmtime/pull/5255
|
|
;;
|
|
|
|
(module
|
|
(memory 1 1)
|
|
(func (export "notify") (result i32) (memory.atomic.notify (i32.const 0) (i32.const -1)))
|
|
)
|
|
|
|
;; notify returns 0 on unshared memories
|
|
(assert_return (invoke "notify") (i32.const 0))
|
|
|
|
(module
|
|
(memory 1 1 shared)
|
|
(func (export "notify_shared") (result i32) (memory.atomic.notify (i32.const 0) (i32.const -1)))
|
|
)
|
|
|
|
;; notify returns 0 with 0 waiters
|
|
(assert_return (invoke "notify_shared") (i32.const 0))
|