Offload functions to worker threads with shared memory primitives for Node.js.
1import { mo } from 'moroutine';
2
3export const sumBuffer = mo(import.meta, (buf: ArrayBuffer): number => {
4 const view = new Uint8Array(buf);
5 let sum = 0;
6 for (let i = 0; i < view.length; i++) {
7 sum += view[i];
8 }
9 return sum;
10});
11
12export const sumUint8 = mo(import.meta, (arr: Uint8Array): number => {
13 let sum = 0;
14 for (let i = 0; i < arr.length; i++) {
15 sum += arr[i];
16 }
17 return sum;
18});
19
20export const makeBuffer = mo(import.meta, (size: number): ArrayBuffer => {
21 const buf = new ArrayBuffer(size);
22 const view = new Uint8Array(buf);
23 for (let i = 0; i < size; i++) {
24 view[i] = i + 1;
25 }
26 return buf;
27});