chore: OliveTin 3k progress

This commit is contained in:
jamesread
2025-08-03 22:10:51 +01:00
parent d4fe9eaa79
commit a62d58f119
85 changed files with 8660 additions and 7771 deletions

24
frontend/js/Mutex.js Normal file
View File

@@ -0,0 +1,24 @@
export class Mutex {
constructor() {
this._locked = false;
this._waiting = [];
}
lock() {
const unlock = () => {
const next = this._waiting.shift();
if (next) {
next(unlock);
} else {
this._locked = false;
}
};
if (this._locked) {
return new Promise(resolve => this._waiting.push(resolve)).then(() => unlock);
} else {
this._locked = true;
return Promise.resolve(unlock);
}
}
}