UNPKG

coincident

Version:

An Atomics based Proxy to simplify, and synchronize, Worker related tasks

31 lines (26 loc) 558 B
//@ts-check /** @type {ArrayBuffer[]} */ const nothing = []; /** @type {WeakSet<ArrayBuffer[]>} */ const buffers = new WeakSet; /** * @param {boolean} check * @param {any[]} args * @returns */ export const get = (check, args) => { let transfer = nothing; if (check && buffers.has(args.at(-1) || nothing)) { transfer = args.pop(); buffers.delete(transfer); } return transfer; }; /** * @param {...ArrayBuffer} args * @returns */ export const set = (...args) => { buffers.add(args); return args; };