From 2f9c7a2f14472043135b3bbe6eb98dcbe7a5f91d Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Tue, 16 May 2017 14:03:08 +0200 Subject: [PATCH] Fix spinning TaskPersister Wait on the lock if the queue is paused instead of just spin-looping. Test: Close app, make sure screenshot gets persisted. Bug: 36631902 Change-Id: Id7940468391d6cdfc74bb9341c1639f72d469387 --- .../java/com/android/server/wm/TaskSnapshotPersister.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/TaskSnapshotPersister.java b/services/core/java/com/android/server/wm/TaskSnapshotPersister.java index 0287070047736..866bfc015a5f4 100644 --- a/services/core/java/com/android/server/wm/TaskSnapshotPersister.java +++ b/services/core/java/com/android/server/wm/TaskSnapshotPersister.java @@ -209,11 +209,12 @@ class TaskSnapshotPersister { SystemClock.sleep(DELAY_MS); } synchronized (mLock) { - if (!mWriteQueue.isEmpty()) { + final boolean writeQueueEmpty = mWriteQueue.isEmpty(); + if (!writeQueueEmpty && !mPaused) { continue; } try { - mQueueIdling = true; + mQueueIdling = writeQueueEmpty; mLock.wait(); mQueueIdling = false; } catch (InterruptedException e) {