subprocess module and blocking

Robin Becker robin at reportlab.com
Tue Jun 14 05:59:01 EDT 2005


Dieter Maurer wrote:
.....
> 
> You just found out that this is not the case.

thanks I suppose I was being a moron.

> 
> The warning attached to "communicate"s docstring might have
> you averted: "Note: the data read is buffered in memory...
> do not use for large size".
> 
> If subprocess would do what you expect, it would need to
> buffer the output (to make room in the pipes again).
> But, for large data, this could have dramatic consequences.
> 
> Thus, you should use "select" on the pipes to find out
> when to read data.
> 

Unfortunately select isn't an option for windows (I think that's only for 
sockets). I guess I need to read repeatedly from the stdout etc to get the 
output. Clearly the poll call can't return a status until we've finished
reading.

> 
> Dieter


-- 
Robin Becker




More information about the Python-list mailing list