Rename locks

This commit is contained in:
Andras Schmelczer 2025-01-02 09:16:32 +00:00
parent 9e9ee06f15
commit cfdad5f608
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C

View file

@ -1,7 +1,7 @@
import type { RelativePath } from "src/database/document-metadata";
const locked = new Set<RelativePath>(),
waiters = new Map<RelativePath, (() => void)[]>();
const locked = new Set<RelativePath>();
const waiters = new Map<RelativePath, (() => void)[]>();
export function tryLockDocument(relativePath: RelativePath): boolean {
if (locked.has(relativePath)) {
@ -32,10 +32,14 @@ export async function waitForDocumentLock(
export function unlockDocument(relativePath: RelativePath): void {
if (!locked.has(relativePath)) {
throw new Error(`Document ${relativePath} is not locked`);
throw new Error(
`Document ${relativePath} is not locked, cannot unlock`
);
}
// Remove the first element to ensure FIFO unblocking order
const nextWaiting = waiters.get(relativePath)?.shift();
if (nextWaiting) {
nextWaiting();
} else {