summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jorim Jaggi <jjaggi@google.com> 2017-05-16 14:03:08 +0200
committer Jorim Jaggi <jjaggi@google.com> 2017-05-16 14:13:08 +0200
commit2f9c7a2f14472043135b3bbe6eb98dcbe7a5f91d (patch)
treeefdd5e0707ab7b374a6972ccd4d507ef912f45cf
parent5afccc62517a5c9ba44ed7671f130230297af83b (diff)
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
-rw-r--r--services/core/java/com/android/server/wm/TaskSnapshotPersister.java5
1 files 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 028707004773..866bfc015a5f 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) {