On Windows, a quick git call that Obeya started at the same moment as a slow one (a fetch, a push) could look unfinished until the slow one ended: the slow process had inherited the quick one's output pipe. On the server's own thread that meant the whole server stood still for as long. Obeya now starts one process at a time on Windows, and the server's own starts go first, so a quick call ends as quickly as it would alone.
Where most git calls run. Each bar is one quick call, on one scale up to 8.5 s.
A call here holds up every page and agent until it ends.
On a Windows 11 machine: four slow processes of 8 s each, standing in for a fetch or a push, and started right among them eight quick git --version calls on the process threads and eight on the server's thread. The price: starts now take turns, so in a burst a call on a process thread can wait up to about a second for the starts ahead of it.
A start that never returns (or a thread that ends in the middle of one) would otherwise leave every later start waiting, and with it the server. After ten seconds, the next start takes its turn anyway, and the server log says so. On macOS and Linux nothing changes: their pipes are never inherited.