()
| 12 | } |
| 13 | |
| 14 | private async lock() { |
| 15 | if (this.permits > 0) { |
| 16 | this.permits = this.permits - 1; |
| 17 | return; |
| 18 | } |
| 19 | await new Promise<boolean>(resolve => this.promiseResolverQueue.push(resolve)); |
| 20 | } |
| 21 | |
| 22 | private unlock() { |
| 23 | this.permits += 1; |