Something went wrong. Try again.
Offload functions to worker threads with shared memory primitives for Node.js.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990import { describe, it } from 'node:test';import assert from 'node:assert/strict';import { boolatomic } from 'moroutine';
describe('BoolAtomic', () => { it('self-allocates and initializes to false', () => { const a = boolatomic(); assert.equal(a.load(), false); });
it('stores and loads true', () => { const a = boolatomic(); a.store(true); assert.equal(a.load(), true); });
it('stores and loads false', () => { const a = boolatomic(); a.store(true); a.store(false); assert.equal(a.load(), false); });
it('exposes byteSize of 1', () => { assert.equal(boolatomic.byteSize, 1); });
it('and(false) clears, returns previous', () => { const a = boolatomic(); a.store(true); assert.equal(a.and(false), true); assert.equal(a.load(), false); });
it('and(true) preserves, returns previous', () => { const a = boolatomic(); a.store(true); assert.equal(a.and(true), true); assert.equal(a.load(), true); });
it('or(true) sets, returns previous', () => { const a = boolatomic(); assert.equal(a.or(true), false); assert.equal(a.load(), true); });
it('or(false) preserves, returns previous', () => { const a = boolatomic(); a.store(true); assert.equal(a.or(false), true); assert.equal(a.load(), true); });
it('xor(true) toggles, returns previous', () => { const a = boolatomic(); a.store(true); assert.equal(a.xor(true), true); assert.equal(a.load(), false); });
it('xor(false) preserves, returns previous', () => { const a = boolatomic(); a.store(true); assert.equal(a.xor(false), true); assert.equal(a.load(), true); });
it('exchange returns previous value', () => { const a = boolatomic(); a.store(true); assert.equal(a.exchange(false), true); assert.equal(a.load(), false); });
it('compareExchange succeeds when expected matches', () => { const a = boolatomic(); a.store(true); assert.equal(a.compareExchange(true, false), true); assert.equal(a.load(), false); });
it('compareExchange fails when expected does not match', () => { const a = boolatomic(); a.store(true); assert.equal(a.compareExchange(false, false), true); assert.equal(a.load(), true); });});