diff options
| author | 2017-05-16 14:03:08 +0200 | |
|---|---|---|
| committer | 2017-05-16 14:13:08 +0200 | |
| commit | 2f9c7a2f14472043135b3bbe6eb98dcbe7a5f91d (patch) | |
| tree | efdd5e0707ab7b374a6972ccd4d507ef912f45cf | |
| parent | 5afccc62517a5c9ba44ed7671f130230297af83b (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.java | 5 |
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) { |