Ignore:
Timestamp:
Jul 28, 2011, 12:43:59 AM (14 years ago)
Author:
Dmitry A. Kuminov
Message:

OS/2: QProcess: New I/O pipe notification mechanism.

This remake is to fix a number of problems such as hangs
and truncated data during interprocess communication using
redirection of standard I/O channels through the QIODevice
interface provided by QProcess. See #199.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/corelib/io/qprocess.cpp

    r911 r913  
    842842    destroyPipe(childStartedPipe);
    843843    destroyPipe(deathPipe);
    844 #else
    845     pipeData[InPipe].bytesLeft = 0;
    846     pipeData[OutPipe].bytesLeft = pipeData[ErrPipe].bytesLeft = 0;
    847     pipeData[InPipe].newBytes = 0;
    848     pipeData[OutPipe].newBytes = pipeData[ErrPipe].newBytes = 0;
    849844#endif
    850845#ifdef Q_OS_UNIX
     
    18771872            d->stdinChannel.notifier->setEnabled(true);
    18781873#if defined QPROCESS_DEBUG
    1879     qDebug("QProcess::writeData(%p \"%s\", %lld) == 1 (written to buffer)",
    1880            data, qt_prettyDebug(data, len, 16).constData(), len);
     1874    qDebug("QProcess::writeData(%p \"%s\", %lld) == 1 (written to buffer)",
     1875           data, qt_prettyDebug(data, len, 16).constData(), len);
    18811876#endif
    18821877#if defined(Q_OS_OS2)
    18831878        // try to write some bytes (there may be space in the pipe)
    1884         d->_q_canWrite();
     1879        d->_q_);
    18851880#endif
    18861881        return 1;
     
    18961891#endif
    18971892#if defined(Q_OS_OS2)
    1898         // try to write some bytes (there may be space in the pipe)
    1899         d->_q_canWrite();
     1893    // try to write some bytes (there may be space in the pipe)
     1894    );
    19001895#endif
    19011896    return len;
Note: See TracChangeset for help on using the changeset viewer.