* Execute a function while holding the lock
(fn: () => T)
| 299 | * Execute a function while holding the lock |
| 300 | */ |
| 301 | withLock<T>(fn: () => T): T { |
| 302 | this.acquire(); |
| 303 | try { |
| 304 | return fn(); |
| 305 | } finally { |
| 306 | this.release(); |
| 307 | } |
| 308 | } |
| 309 | |
| 310 | /** |
| 311 | * Execute an async function while holding the lock |