Given a shared Int32Array
.
const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);
A reading thread is sleeping and waiting on location 0 which is expected to be 0. The result.value
will be a promise.
const result = Atomics.waitAsync(int32, 0, 0, 1000);
In the reading thread or in another thread, the memory location 0 is called and the promise can be resolved with "ok"
.
Atomics.notify(int32, 0);
If it isn't resolving to "ok"
, the value in the shared memory location wasn't the expected (the value
would be "not-equal"
instead of a promise) or the timeout was reached (the promise will resolve to "time-out"
).