wait-for-others.ts 319 B

1234567891011
  1. import { threadId } from 'worker_threads';
  2. module.exports = async function ([i32array, n]) {
  3. Atomics.add(i32array, 0, 1);
  4. Atomics.notify(i32array, 0, Infinity);
  5. let lastSeenValue;
  6. while ((lastSeenValue = Atomics.load(i32array, 0)) < n) {
  7. Atomics.wait(i32array, 0, lastSeenValue);
  8. }
  9. return threadId;
  10. };