Atomics.notify()

La méthode statique Atomics.notify() permet de réveiller des agents dormants qui sont dans la file d'attente.

Note : Cette opération ne fonctionne que sur un tableau typé partagé de type Int32Array.

Syntaxe

js
Atomics.notify(typedArray, index, count);

Paramètres

typedArray

Un table typé partagé de type Int32Array.

index

La position sur le tableau typedArray pour laquelle réveiller les agents.

count

Le nombre d'agents dormants à réveiller.

Valeur de retour

Le nombre d'agents réveillés.

Exceptions levées

  • Cette méthode lève TypeError si typedArray n'est pas un tableau typé partagé de typeInt32Array.
  • Cette méthode lève RangeError si index est en dehors des limites de typedArray.

Exemples

Soit un tableau typé partagé Int32Array:

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

Un thread de lecture est en sommeil et surveille l'emplacement 0 et s'attend à ce que la valeur soit 0. Tant que cette condition est vérifiée, l'exécution n'ira pas plus loin. Lorsque le thread d'écriture a enregistré une nouvelle valeur, le thread de lecture sera réveillé par le thread d'écriture et renverra la nouvelle valeur (123).

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

Un thread d'écriture stocke une nouvelle valeur et notifie le thread de lecture une fois que la valeur a bien été écrite :

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

Spécifications

Specification
ECMAScript Language Specification
# sec-atomics.notify

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi