Fix race condition triggered by quick stop/start of Dream
If a Dream was running, then stopped and restarted in quick succession it was possible for it to fail to restart. It would do this because before starting a dream, there is a check to ensure that the requested dream is not already running. All dreams are started and stopped on a handler thread, because of this it is possible for the dream to still be running when #stopDream is called followed immediately by #startDream. This CL changes the check at the beginning of #startDreamLocked to ensure that the current dream is not in the process of waking before returning early which prevents this error from happening. Bug: 181523689 Test: adb shell input keyevent KEYCODE_WAKEUP && \ sleep .02 && \ adb shell input keyevent KEYCODE_SLEEP Change-Id: I0ba6f630f114df18c49e65ac1a72c8040db64817
Loading
Please register or sign in to comment