@nopwdio/sdk-js
Version:
Nopwd JS SDK
27 lines • 599 B
JavaScript
export class Mutex {
constructor() {
this.locked = false;
this.queue = [];
}
lock() {
return new Promise((resolve) => {
if (!this.locked) {
this.locked = true;
resolve(undefined);
}
else {
this.queue.push(resolve);
}
});
}
unlock() {
if (this.queue.length > 0) {
const resolve = this.queue.shift();
resolve();
}
else {
this.locked = false;
}
}
}
//# sourceMappingURL=mutex.js.map