Files
wasmtime/tests/misc_testsuite/threads/atomics_notify.wast
Harald Hoyer c74706aa59 feat: implement memory.atomic.notify,wait32,wait64 (#5255)
* 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>
2022-11-21 18:23:06 +00:00

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))