[Interest] QProcess: child read from stdin - no data received?

Joerg Bornemann joerg.bornemann at nokia.com
Mon May 14 12:32:13 CEST 2012


On 14/05/2012 10:06, ext Thiago Macieira wrote:

> The Windows side is very, very complex. Take a look at the
> QProcessPrivate::waitForReadyRead function: it actually does a busy-wait
> trying to read from the pipe and sleeps. It's horrible.

In Qt5 QProcess (on Windows) creates named pipes with overlapped I/O 
(async I/O) enabled. These handles are passed to the child process and 
could be used to get notified whenever a read operation on stdin 
completes (see QWinOverlappedIoNotifier).

Note that this will only work if the parent process is a Qt5 process (or 
creates the same kind of handles). Oh and its of obviously 
platform-dependent.


BR,

Jörg



More information about the Interest mailing list