From 3fc1002489d5861d4f7cc2e1e8800881d6593c9d Mon Sep 17 00:00:00 2001 From: Louai Al-Khanji Date: Sat, 5 Dec 2015 21:42:35 -0800 Subject: QAndroidEventDispatcher: Remove dependency on select(2) Change-Id: I4c23816a3a665cf2fa40705efe721b6f43fa3146 Reviewed-by: Lars Knoll Reviewed-by: BogDan Vatra --- .../platforms/android/qandroideventdispatcher.cpp | 18 +++++------------- .../platforms/android/qandroideventdispatcher.h | 3 --- 2 files changed, 5 insertions(+), 16 deletions(-) (limited to 'src/plugins/platforms') diff --git a/src/plugins/platforms/android/qandroideventdispatcher.cpp b/src/plugins/platforms/android/qandroideventdispatcher.cpp index aecea0d4e1..3f1cfe18b9 100644 --- a/src/plugins/platforms/android/qandroideventdispatcher.cpp +++ b/src/plugins/platforms/android/qandroideventdispatcher.cpp @@ -77,8 +77,11 @@ void QAndroidEventDispatcher::goingToStop(bool stop) wakeUp(); } -int QAndroidEventDispatcher::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, timespec *timeout) +bool QAndroidEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags) { + if (m_goingToStop.load()) + flags |= QEventLoop::ExcludeSocketNotifiers | QEventLoop::X11ExcludeTimers; + { AndroidDeadlockProtector protector; if (protector.acquire() && m_stopRequest.testAndSetAcquire(StopRequest, Stopping)) { @@ -86,21 +89,10 @@ int QAndroidEventDispatcher::select(int nfds, fd_set *readfds, fd_set *writefds, wakeUp(); } } - return QUnixEventDispatcherQPA::select(nfds, readfds, writefds, exceptfds, timeout); -} -bool QAndroidEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags) -{ - if (m_goingToStop.load()) { - return QUnixEventDispatcherQPA::processEvents(flags /*| QEventLoop::ExcludeUserInputEvents*/ - | QEventLoop::ExcludeSocketNotifiers - | QEventLoop::X11ExcludeTimers); - } else { - return QUnixEventDispatcherQPA::processEvents(flags); - } + return QUnixEventDispatcherQPA::processEvents(flags); } - QAndroidEventDispatcherStopper *QAndroidEventDispatcherStopper::instance() { static QAndroidEventDispatcherStopper androidEventDispatcherStopper; diff --git a/src/plugins/platforms/android/qandroideventdispatcher.h b/src/plugins/platforms/android/qandroideventdispatcher.h index 946bae5b20..e2c4770467 100644 --- a/src/plugins/platforms/android/qandroideventdispatcher.h +++ b/src/plugins/platforms/android/qandroideventdispatcher.h @@ -50,9 +50,6 @@ public: void goingToStop(bool stop); protected: - int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, - timespec *timeout); - bool processEvents(QEventLoop::ProcessEventsFlags flags); private: -- cgit v1.2.3