summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kde.org>2016-04-29 16:18:21 +0300
committerBogDan Vatra <bogdan@kdab.com>2016-04-29 13:35:40 +0000
commite26bbc84599c3f8a06fe57f03b16a6479ef64e48 (patch)
tree46e96b17c63eed5ee20162da3906ebdea9681615 /src
parentcb6acf32f90c70a9fd3be88d831459d314bec893 (diff)
downloadqt-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.cpp20
-rw-r--r--src/plugins/android/androidrunner.h2
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();