On Mon, 05 Jan 2004 00:33:12 +0100, Willy Tarreau said: > at a time. I have yet to understand why 'ls|cat' behaves > differently, but fortunately it works and it has already saved I suspect that ls and cat do different buffering to their outputs, and/or the fact there's now 4 processes (ls, cat, xterm, Xserver) rather than just 3. End result is that things wake up in a different order and happen to schedule better. (For instance, ls may be able to make progress while cat is blocked waiting for the xterm to read the next block, etc). I remember at least some versions of 'dd' would fork off a sub-process so there would be a reader side and a writer side with a shared memory buffer, for just that reason.