Author josiahcarlson
Recipients
Date 2006-12-31.18:04:28
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
Unless you use PeekNamedPipe on Windows, there is no guarantee that the pipe will return *any* data until the process ends, even if you say pipe.read(1) and there is 1k of data already sent.

Note that the two async reading methods that I provide (recv() and recv_err()) take a 'maximum bytes' argument.  Just like I have written a 'send_all()' utility function, I (or you) can easily write a 'recv_exact()' utility function that receives an exact number of bytes before returning.  That functionality would be more or less required for one of the expected use-cases I specify in the recipe, "writing a multi-platform 'expect' module".

Stick with async calls (with the utility recv_exact()) until you need to use the .communicate() method.
History
Date User Action Args
2007-08-23 16:10:56adminlinkissue1191964 messages
2007-08-23 16:10:56admincreate