diff options
Diffstat (limited to 'services/input/InputDispatcher.cpp')
| -rw-r--r-- | services/input/InputDispatcher.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/services/input/InputDispatcher.cpp b/services/input/InputDispatcher.cpp index 9f09062..ad64ccd 100644 --- a/services/input/InputDispatcher.cpp +++ b/services/input/InputDispatcher.cpp @@ -238,6 +238,8 @@ void InputDispatcher::dispatchOnce() { nsecs_t nextWakeupTime = LONG_LONG_MAX; { // acquire lock AutoMutex _l(mLock); + mDispatcherIsAliveCondition.broadcast(); + dispatchOnceInnerLocked(&nextWakeupTime); if (runCommandsLockedInterruptible()) { @@ -4086,6 +4088,8 @@ void InputDispatcher::dump(String8& dump) { void InputDispatcher::monitor() { // Acquire and release the lock to ensure that the dispatcher has not deadlocked. mLock.lock(); + mLooper->wake(); + mDispatcherIsAliveCondition.wait(mLock); mLock.unlock(); } |
