UNPKG

@lucadani7/algonodejs-for-beginners

Version:

Just a simple Node.js package with some basic algorithms perfect for people just starting out. It's got easy-to-understand TypeScript versions of stuff like sorting, searching, math with numbers, and messing with strings.

30 lines (29 loc) 879 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AtomicIntegerNode = void 0; class AtomicIntegerNode { constructor(initial = 0n) { this.buffer = new SharedArrayBuffer(4); // 4 bytes for Int32 this.view = new Int32Array(this.buffer); Atomics.store(this.view, 0, initial); } getBuffer() { return this.buffer; } get() { return BigInt(Atomics.load(this.view, 0)); } set(value) { Atomics.store(this.view, 0, value); } incrementAndGet() { return BigInt(Atomics.add(this.view, 0, 1)); } getAndIncrement() { return BigInt(Atomics.add(this.view, 0, 1) - 1); } compareAndSet(expected, updated) { return Atomics.compareExchange(this.view, 0, expected, updated) === expected; } } exports.AtomicIntegerNode = AtomicIntegerNode;