[Python-Dev] subprocess crossplatformness and async communication
Hrvoje Niksic
hrvoje.niksic at avl.com
Mon Jan 26 14:10:04 CET 2009
Nick Craig-Wood wrote:
> But for the conversational case (eg using it to do a remote login) it
> doesn't work at all :-
>
> run child
> send stuff to stdin
> child reads stdin and writes stdout
Can this really be made safe without an explicit flow control protocol,
such as a pseudo-TTY? stdio reads data from pipes such as stdin in 4K
or so chunks. I can easily imagine the child blocking while it waits
for its stdin buffer to fill, while the parent in turn blocks waiting
for the child's output arrive.
Shell pipelines (and the subprocess module as it stands) don't have this
problem because they're unidirectional: you read input from one process
and write output to another, but you typically don't feed data back to
the process you've read it from.
More information about the Python-Dev
mailing list