Details
-
Task
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.0
-
None
Description
This task is about QProcess in QProcess::SeparateChannels mode.
Currently the documentation for QProcess::waitForReadyRead() says it's just a reimplementation of QIODevice. See: https://doc.qt.io/archives/qt-6.0/qprocess.html#waitForReadyRead. However, this is not enough.
QProcess::waitForReadyRead() works only for one selected channel: either StandardOutput (the default) or StandardError. The channel may be selected via the QProcess::setReadChannel().
In case when the selected channel was StandardOutput and the data appeared on stdErr, this function won't notice it. The same applies for the opposite case: when the selected channel was StandardError and the data appeared on stdOut, it will stay unnoticed. Please document it, as it's really not obvious.
Currently there is no way to blocking wait for data on any channel - the pending request for the feature is here: QTBUG-119804.
Attachments
Issue Links
- relates to
-
QTBUG-119804 QProcess needs a waitFor to wait for either channel in QProcess::SeparateChannels
-
- Open
-