W3cubDocs

/JavaScript

Atomics.notify

The static Atomics.notify() method notifies up some agents that are sleeping in the wait queue.

Note: This operation works with a shared Int32Array only.

Syntax

Atomics.notify(typedArray, index, count)

Parameters

typedArray
A shared Int32Array.
index
The position in the typedArray to wake up on.
count
The number of sleeping agents to notify. Defaults to +Infinity.

Return value

A number of woken up agents.

Exceptions

Examples

Given a shared Int32Array:

var sab = new SharedArrayBuffer(1024);
var int32 = new Int32Array(sab);

A reading thread is sleeping and waiting on location 0 which is expected to be 0. As long as that is true, it will not go on. However, once the writing thread has stored a new value, it will be notified by the writing thread and return the new value (123).

Atomics.wait(int32, 0, 0);
console.log(int32[0]); // 123

A writing thread stores a new value and notifies the waiting thread once it has written:

console.log(int32[0]); // 0;
Atomics.store(int32, 0, 123); 
Atomics.notify(int32, 0, 1);

Specifications

Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
The definition of 'Atomics.notify' in that specification.
Draft Initial definition in ES2017.

Browser compatibilityUpdate compatibility data on GitHub

Desktop
Chrome Edge Firefox Internet Explorer Opera Safari
Basic support 68
68
60 — 63
Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This was a temporary removal while mitigations were put in place.
Uses the non-standard name: wake
16
16
Support was removed to mitigate speculative execution side-channel attacks (Windows blog).
Uses the non-standard name: wake
63
Disabled
63
Disabled
Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
Disabled From version 63: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
57
Disabled
Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
Uses the non-standard name: wake
Disabled From version 57: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
55 — 57
48 — 55
Disabled
Disabled From version 48 until version 55 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
46 — 48
Disabled
The count parameter defaults to 0 instead of the later-specified +Infinity.
Uses the non-standard name: futexWake
Disabled From version 46 until version 48 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No No 10.1 — ?
10.1 — ?
Uses the non-standard name: wake
Mobile
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support 60 — 63
60 — 63
Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
Uses the non-standard name: wake
60 — 63
60 — 63
Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
Uses the non-standard name: wake
? 63
Disabled
63
Disabled
Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
Disabled From version 63: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
57
Disabled
Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
Uses the non-standard name: wake
Disabled From version 57: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
55 — 57
48 — 55
Disabled
Disabled From version 48 until version 55 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
46 — 48
Disabled
The count parameter defaults to 0 instead of the later-specified +Infinity.
Uses the non-standard name: futexWake
Disabled From version 46 until version 48 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No No No
Server
Node.js
Basic support 8.10.0
8.10.0
Uses the non-standard name: wake

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics/notify