RWMutext
A simple read-write mutex/lock using JavaScript Promises. This is inspired by Golang's sync.RWMutex.
Install
Install via NPM:
npm i rwmutex --save
Usage
This package exports a RWMutex class.
;// orconst RWMutex = ;
Create a RWMutex with the constructor. You can optionally pass in a string label for identifying the mutex in debugging. Each mutex operates independently, they will not block each other when locked.
const mutex = ;
To create a typical lock, that blocks all future locks, use the .lock()
method. Typically this is used when writing data. This returns a promise that will resolve when unblocked. It returns the unlock method that must be called to unblock the mutex.
{ return mutex;}
To create a read lock, use the .rlock()
method. This method is very similar to .lock()
, but can be called in parallel with other calls to .rlock()
without blocking. Calls to .rlock()
will block future calls to .lock()
.
{ return mutex;}