Web Locks API
implementation for Node.js based on
worker_threads
,
Atomics
,
SharedArrayBuffer
,
asynchronous functions,
and queue.
See specification: wicg.github.io/web-locks/ and documentation: developer.mozilla.org/en-US/docs/Web/API/Lock
This implementation is a part of Metarhia technology stack, needed for the first pilot project of Node.js application server based on parallel programming and workload micro-isolation. Web Locks API is intended to be merged into Node.js in future.
- Simplest parallel programming primitive to solve a problem of data races and race conditions.
- Node.js and
worker_threads
support. - Different optimized implementations for certain cases: single-threaded asynchronous locks, multi-threaded locks with a single unifyed API.
$ npm install web-locks
await locks.request('Resource name', async lock => {
// use named resource and release it after return
});
More examples here
This implementation of Web Locks API is MIT licensed.