forked from qt-creator/qt-creator
QtcProcess: Be idle when incoming data is empty
Don't forward and flush empty data Change-Id: Idb153695d7eb62905c000b70efdfb0c68f0df9ad Reviewed-by: hjk <hjk@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -1983,22 +1983,25 @@ void QtcProcessPrivate::handleReadyRead(const QByteArray &outputData, const QByt
|
|||||||
m_hangTimerCount = 0;
|
m_hangTimerCount = 0;
|
||||||
// TODO: store a copy of m_processChannelMode on start()? Currently we assert that state
|
// TODO: store a copy of m_processChannelMode on start()? Currently we assert that state
|
||||||
// is NotRunning when setting the process channel mode.
|
// is NotRunning when setting the process channel mode.
|
||||||
|
|
||||||
|
if (!outputData.isEmpty()) {
|
||||||
if (m_process->m_setup.m_processChannelMode == QProcess::ForwardedOutputChannel
|
if (m_process->m_setup.m_processChannelMode == QProcess::ForwardedOutputChannel
|
||||||
|| m_process->m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
|
|| m_process->m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
|
||||||
std::cout << outputData.constData() << std::flush;
|
std::cout << outputData.constData() << std::flush;
|
||||||
} else {
|
} else {
|
||||||
m_stdOut.append(outputData);
|
m_stdOut.append(outputData);
|
||||||
if (!outputData.isEmpty())
|
|
||||||
emitReadyReadStandardOutput();
|
emitReadyReadStandardOutput();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (!errorData.isEmpty()) {
|
||||||
if (m_process->m_setup.m_processChannelMode == QProcess::ForwardedErrorChannel
|
if (m_process->m_setup.m_processChannelMode == QProcess::ForwardedErrorChannel
|
||||||
|| m_process->m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
|
|| m_process->m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
|
||||||
std::cerr << errorData.constData() << std::flush;
|
std::cerr << errorData.constData() << std::flush;
|
||||||
} else {
|
} else {
|
||||||
m_stdErr.append(errorData);
|
m_stdErr.append(errorData);
|
||||||
if (!errorData.isEmpty())
|
|
||||||
emitReadyReadStandardError();
|
emitReadyReadStandardError();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtcProcessPrivate::handleDone(const ProcessResultData &data)
|
void QtcProcessPrivate::handleDone(const ProcessResultData &data)
|
||||||
|
Reference in New Issue
Block a user