On 28/03/2014 06:35 pm, Josiah Carlson wrote:

    If it were me, I'd define three methods, with longer names to
    clarify what they do, e.g.

    proc.write_nonblocking(data)
    data = proc.read_nonblocking()
    data = proc.read_stderr_nonblocking()


Easily doable.
To implement write_nonblocking() on Windows, do you intend to use SetNamedPipeHandleState() with PIPE_NOWAIT? The documentation discourages using this:

   Note that nonblocking mode is supported for compatibility with
   Microsoft LAN Manager version 2.0 and should not be used to
   achieve asynchronous input and output (I/O) with named pipes.

And I guess you will need to use a poll/sleep loop to simulate blocking or multiplexing. If you want expect-like behaviour then you need some sort of multiplexing.

-- RIchard**
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to