If a parallel analysis tool reports an error, that analyzer worker thread just exits. But its input is not in the scheduler's ready queue as it's assigned to that output stream: so the scheduler hangs at the end waiting for that input.
One solution is for the analyzer to call set_active(false) when returning early from a worker.
If a parallel analysis tool reports an error, that analyzer worker thread just exits. But its input is not in the scheduler's ready queue as it's assigned to that output stream: so the scheduler hangs at the end waiting for that input.
One solution is for the analyzer to call
set_active(false)
when returning early from a worker.