Offload functions to worker threads with shared memory primitives for Node.js.
1import { describe, it } from 'node:test';
2import assert from 'node:assert/strict';
3import { workers, assign } from 'moroutine';
4import { identity } from './fixtures/worker-handle.ts';
5
6describe('assign()', () => {
7 it('returns a new task with worker set', () => {
8 const run = workers(1);
9 try {
10 const task = identity(5);
11 const assigned = assign(run.workers[0], task);
12 assert.notStrictEqual(assigned, task);
13 assert.equal(assigned.id, task.id);
14 assert.deepEqual(assigned.args, task.args);
15 assert.notEqual(assigned.uid, task.uid);
16 assert.equal(assigned.worker, run.workers[0]);
17 } finally {
18 run[Symbol.dispose]();
19 }
20 });
21
22 it('does not modify the original task', () => {
23 const run = workers(1);
24 try {
25 const task = identity(5);
26 assign(run.workers[0], task);
27 assert.equal(task.worker, undefined);
28 } finally {
29 run[Symbol.dispose]();
30 }
31 });
32});