Add new activity dumpsys command to persist all data.
Very useful for testing persisting/restoring, to make sure
that all pending changes have been written.
Change-Id: I0e3b7cd3af8afb0b6e751e086081566ab00b76c9
diff --git a/services/core/java/com/android/server/am/TaskPersister.java b/services/core/java/com/android/server/am/TaskPersister.java
index 1c0564f..afc781f 100644
--- a/services/core/java/com/android/server/am/TaskPersister.java
+++ b/services/core/java/com/android/server/am/TaskPersister.java
@@ -187,6 +187,19 @@
yieldIfQueueTooDeep();
}
+ void flush() {
+ synchronized (this) {
+ mNextWriteTime = FLUSH_QUEUE;
+ notifyAll();
+ do {
+ try {
+ wait();
+ } catch (InterruptedException e) {
+ }
+ } while (mNextWriteTime == FLUSH_QUEUE);
+ }
+ }
+
void saveImage(Bitmap image, String filename) {
synchronized (this) {
int queueNdx;
@@ -483,8 +496,12 @@
INTER_WRITE_DELAY_MS + " msec. (" + mNextWriteTime + ")");
}
+
while (mWriteQueue.isEmpty()) {
- mNextWriteTime = 0; // idle.
+ if (mNextWriteTime != 0) {
+ mNextWriteTime = 0; // idle.
+ TaskPersister.this.notifyAll(); // wake up flush() if needed.
+ }
try {
if (DEBUG) Slog.d(TAG, "LazyTaskWriter: waiting indefinitely.");
TaskPersister.this.wait();