This is a PoC about how jobs can be used to control concurrency limit.
Currently jobs can either be 0 (no limit, spawn/fork as many as possible), or 1 (serial). This PR uses a thread pool to control the max number of concurrently running processes.
This PR also solves a deadlock when a child process outputs too much data that don't fit into output buffer.
This is a PoC about how
jobs
can be used to control concurrency limit.Currently
jobs
can either be 0 (no limit, spawn/fork as many as possible), or 1 (serial). This PR uses a thread pool to control the max number of concurrently running processes.This PR also solves a deadlock when a child process outputs too much data that don't fit into output buffer.