It probably could - which is why there's the 'buffered stderr' option in pipe (that doesn't seem to work - when I used it I got no output from stderr unless I was debugging - I suspect a race condition), and why the (similarish) code in eclccserver uses its own version of the 'separate thread for stderr' code.

In practice, there's only a very limited amount of data coming out on stdout, and data only comes out on EITHER stdout or stderr in my usage, so not an issue.

I should probably raise a Jira for the fact that the buffered stderr code in jlib did not seem to work though.