Skip to content

Instantly share code, notes, and snippets.

@RioChndr
RioChndr / Shared-value-and-atomic.ts
Created April 2, 2026 08:37
Shared value, atomic Operation, Free race condition, async mutex minimal PoC
const SharedLock = new SharedArrayBuffer(4); // Create a shared buffer for lock
const ArrayLock = new Int32Array(SharedLock); // Create an Int32Array view for atomic operations
async function acquireLock(): Promise<void> {
while (isLocked()) {
await new Promise(resolve => setTimeout(resolve, 100)); // wait for 100ms before retrying
}
Atomics.store(ArrayLock, 0, 1); // acquire lock
}
function releaseLock(): void {