diff options
author | BogDan Vatra <bogdan@kde.org> | 2016-04-29 16:18:21 +0300 |
---|---|---|
committer | BogDan Vatra <bogdan@kdab.com> | 2016-04-29 13:35:40 +0000 |
commit | e26bbc84599c3f8a06fe57f03b16a6479ef64e48 (patch) | |
tree | 46e96b17c63eed5ee20162da3906ebdea9681615 /src | |
parent | cb6acf32f90c70a9fd3be88d831459d314bec893 (diff) | |
download | qt-creator-e26bbc84599c3f8a06fe57f03b16a6479ef64e48.tar.gz |
Fix warnings
Don't try to write from another thread into a process stdin. Fixes
"QSocketNotifier: Socket notifiers cannot be enabled or disabled from
another thread" warnings.
Change-Id: Id93a40a6bee6d4042cf600c8fabb06bf965d8ccc
Reviewed-by: hjk <hjk@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/android/androidrunner.cpp | 20 | ||||
-rw-r--r-- | src/plugins/android/androidrunner.h | 2 |
2 files changed, 14 insertions, 8 deletions
diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index 80c49b5564..20946350df 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -249,13 +249,19 @@ static int extractPid(const QString &exeName, const QByteArray &psOutput) QByteArray AndroidRunner::runPs() { - QByteArray psLine("ps"); - if (m_isBusyBox) - psLine += " -w"; - psLine += '\n'; - m_psProc.write(psLine); - m_psProc.waitForBytesWritten(psLine.size()); - return m_psProc.readAllStandardOutput(); + if (QThread::currentThread() != thread()) { + QByteArray ret; + QMetaObject::invokeMethod(this, "runPs", Qt::BlockingQueuedConnection, Q_RETURN_ARG(QByteArray, ret)); + return ret; + } else { + QByteArray psLine("ps"); + if (m_isBusyBox) + psLine += " -w"; + psLine += '\n'; + m_psProc.write(psLine); + m_psProc.waitForBytesWritten(psLine.size()); + return m_psProc.readAllStandardOutput(); + } } void AndroidRunner::checkPID() diff --git a/src/plugins/android/androidrunner.h b/src/plugins/android/androidrunner.h index 32f7418ad9..53c900871a 100644 --- a/src/plugins/android/androidrunner.h +++ b/src/plugins/android/androidrunner.h @@ -80,12 +80,12 @@ private slots: void logcatReadStandardError(); void logcatReadStandardOutput(); void asyncStart(); + QByteArray runPs(); private: void adbKill(qint64 pid); QStringList selector() const { return m_selector; } void forceStop(); - QByteArray runPs(); void findPs(); void logcatProcess(const QByteArray &text, QByteArray &buffer, bool onlyError); bool adbShellAmNeedsQuotes(); |