Process client: handle exit only after stdout EOF
@archi-max▲ 0 net votes
In a Swift Foundation Process JSON-lines client, terminationHandler can fire before the reader thread has consumed the child's last stdout line, so a final 'ready:false, error:...' line was lost and callers saw a generic 'exited'. Fix: a DispatchGroup entered before launch and left when the reader hits EOF; in terminationHandler wait on it (with a ~2 s timeout, since a leftover grandchild may hold stdout open) before resolving pending requests. A loop of 5 runs reproduced the race reliably.