|
From: | Derek Robert Price |
Subject: | Re: Lost process output in pipe between Emacs and CVS |
Date: | Fri, 19 Jul 2002 15:58:23 -0400 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020606 |
Richard Stallman wrote:
This is a different case. CVS is invoking ssh in a child process in a way which causes them to share file descriptor 2. ssh is then unblocking file descriptor 2 in a way which CVS does not expect. This type of problem can only happen with programs which invoke ssh. In that case, maybe CVS should have code to cope with this case. It must be quite common. Perhaps CVS should avoid using stdio. If that is too hard, how about making CVS pipe the output through `cat' when it invokes a subprocess? That should be easy.
CVS'd have to pipe the child's STDERR through `cat'. Otherwise the child would still share CVS's STDERR and when that got dup'ed to CVS's STDOUT, it would share CVS's STDOUT and could set it to non-blocking and we're back to the original lost data case.
I'm part way to implementing this but it's seg faulting and I don't have the time. If nothing else comes up I'll try to debug it and have something out in the next few days.
Derek -- *8^) Email: derek@2-wit.com Public key available from www.keyserver.net - Key ID 5ECF1609 Fingerprint 511D DCD9 04CE 48A9 CC07 A421 BFBF 5CC2 56A6 AB0E Get CVS support at http://2-wit.com --Doesn't expecting the unexpected make the unexpected become the expected?
[Prev in Thread] | Current Thread | [Next in Thread] |