(error)
| 346 | |
| 347 | function stateLockKey(directory, sessionID) { |
| 348 | return `${path.resolve(directory)}:${safeID(sessionID)}` |
| 349 | } |
| 350 | |
| 351 | async function withStateWriteLock(directory, sessionID, fn) { |
| 352 | const key = stateLockKey(directory, sessionID) |
| 353 | const previous = stateWriteLocks.get(key) || Promise.resolve() |
| 354 | let release |
| 355 | const current = new Promise((resolve) => { release = resolve }) |
| 356 | const next = previous.catch(() => {}).then(() => current) |
| 357 | stateWriteLocks.set(key, next) |
| 358 | await previous.catch(() => {}) |
| 359 | try { |
| 360 | return await fn() |
| 361 | } finally { |
no outgoing calls
no test coverage detected