* Parse one file on the pool. Resolves with the extraction result, or REJECTS * if the parse times out or its worker crashes — the caller records the error * and (for worker-exit/OOM rejections) re-attempts in its retry pass.
(task: ParseTask)
| 182 | * and (for worker-exit/OOM rejections) re-attempts in its retry pass. |
| 183 | */ |
| 184 | requestParse(task: ParseTask): Promise<ExtractionResult> { |
| 185 | if (this.destroyed) return Promise.reject(new Error('Parse pool destroyed')); |
| 186 | return new Promise<ExtractionResult>((resolve, reject) => { |
| 187 | this.queue.push({ id: this.nextId++, task, resolve, reject, settled: false }); |
| 188 | this.drain(); |
| 189 | }); |
| 190 | } |
| 191 | |
| 192 | private spawnOne(): void { |
| 193 | if (this.destroyed || this.workers.size >= this.maxSize || !this.healthy) return; |
no test coverage detected