QAndroidEventDispatcher: Remove dependency on select(2)

Change-Id: I4c23816a3a665cf2fa40705efe721b6f43fa3146
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
Louai Al-Khanji 2015-12-05 21:42:35 -08:00
parent 420438b5d3
commit 3fc1002489
2 changed files with 5 additions and 16 deletions

View File

@ -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;

View File

@ -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: