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:
parent
420438b5d3
commit
3fc1002489
@ -77,8 +77,11 @@ void QAndroidEventDispatcher::goingToStop(bool stop)
|
|||||||
wakeUp();
|
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;
|
AndroidDeadlockProtector protector;
|
||||||
if (protector.acquire() && m_stopRequest.testAndSetAcquire(StopRequest, Stopping)) {
|
if (protector.acquire() && m_stopRequest.testAndSetAcquire(StopRequest, Stopping)) {
|
||||||
@ -86,20 +89,9 @@ int QAndroidEventDispatcher::select(int nfds, fd_set *readfds, fd_set *writefds,
|
|||||||
wakeUp();
|
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()
|
QAndroidEventDispatcherStopper *QAndroidEventDispatcherStopper::instance()
|
||||||
{
|
{
|
||||||
|
@ -50,9 +50,6 @@ public:
|
|||||||
void goingToStop(bool stop);
|
void goingToStop(bool stop);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
|
||||||
timespec *timeout);
|
|
||||||
|
|
||||||
bool processEvents(QEventLoop::ProcessEventsFlags flags);
|
bool processEvents(QEventLoop::ProcessEventsFlags flags);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user