Skip to content
Commit 03c10c71 authored by Sean Stout's avatar Sean Stout
Browse files

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
parent f9060291
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment