import { RingBuffer } from "ringbuf.js"; import { Worker } from "worker_threads"; // https://github.com/padenot/ringbuf.js/blob/main/js/ringbuf.js // https://github.com/padenot/ringbuf.js/blob/main/tests/test.mjs async function main () { const arraySize = Math.round(Math.random() * 48000); const pushPopSize = Math.round(Math.random() * arraySize); const sab = RingBuffer.getStorageForCapacity(arraySize, Uint8Array); const rb = new RingBuffer(sab, Uint8Array); const toPop = new Uint8Array(pushPopSize); const worker = new Worker("./worker.js"); worker.postMessage({ name: "seq-constant", sharedArrayBuffer: sab, params: [pushPopSize], }); function boss () { console.log('main. available to read:', rb.available_read()); rb.pop(toPop); for (let i=0; i < 4; i++) console.log('data[', i, '] =', toPop[i]) setTimeout(boss, 1000); } boss(); } main()