rosuav at gmail.com
Tue Feb 23 13:42:15 EST 2016
On Wed, Feb 24, 2016 at 5:11 AM, Dan Stromberg <drsalists at gmail.com> wrote:
> I'm seeing, in the nosepipe code:
> # we use stdout for IPC, so block all other output
> self._stream = sys.__stdout__
> I'm not sure using stdout/stdin for IPC is a great thing; a lot of
> tests write to stdout or stderr, whether intentionally or
Using standard streams for IPC is well recognized. If it's known in
advance, it shouldn't be a problem - writing to stdout/stderr would
simply result in a test failure.
> I'm attempting to replace the use of stdout/stdin with os.pipe(), but
> so far I'm not having much luck. I get three write()'s, and then a
> hang. So far, I'm ignoring the fact that os.read() and os.write()
> might split or aggregate chunks over a socket, since this is a
> socketpair communicating on the same machine.
Sounds like the buffer's full. You'll need to have another thread
reading before you start writing, to prevent that.
More information about the Python-list