(fn)
| 263 | let lock = Promise.resolve() |
| 264 | |
| 265 | async function withLock(fn) { |
| 266 | const prev = lock |
| 267 | let release |
| 268 | lock = new Promise(r => (release = r)) |
| 269 | |
| 270 | await prev |
| 271 | try { |
| 272 | return await fn() |
| 273 | } finally { |
| 274 | release() |
| 275 | } |
| 276 | } |
| 277 | |
| 278 | const task1 = withLock(async () => { |
| 279 | executionOrder.push('start1') |
no test coverage detected