summaryrefslogtreecommitdiffstats
path: root/core/java/android/app
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2015-01-13 04:20:23 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-01-13 04:20:23 +0000
commit19c549fc735bf8a1df5cccb6cc0cdf46c7d242a4 (patch)
treec08cd04d03909a01c7a27925a3ba029aae248cac /core/java/android/app
parent4ecb5fb288fd9994e7b2ec0091fbbcdc81f69526 (diff)
parent1e263d3f140e90966790875a815f23c92550f2f2 (diff)
downloadframeworks_base-19c549fc735bf8a1df5cccb6cc0cdf46c7d242a4.zip
frameworks_base-19c549fc735bf8a1df5cccb6cc0cdf46c7d242a4.tar.gz
frameworks_base-19c549fc735bf8a1df5cccb6cc0cdf46c7d242a4.tar.bz2
am 1e263d3f: am 66b4d484: Merge "Prevent system server dump stuck by pipe buffer full."
* commit '1e263d3f140e90966790875a815f23c92550f2f2': Prevent system server dump stuck by pipe buffer full.
Diffstat (limited to 'core/java/android/app')
-rw-r--r--core/java/android/app/ActivityThread.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 256ce11..6f0bc3a 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -1079,8 +1079,7 @@ public final class ActivityThread {
WindowManagerGlobal.getInstance().dumpGfxInfo(fd);
}
- @Override
- public void dumpDbInfo(FileDescriptor fd, String[] args) {
+ private void dumpDatabaseInfo(FileDescriptor fd, String[] args) {
PrintWriter pw = new FastPrintWriter(new FileOutputStream(fd));
PrintWriterPrinter printer = new PrintWriterPrinter(pw);
SQLiteDebug.dump(printer, args);
@@ -1088,6 +1087,22 @@ public final class ActivityThread {
}
@Override
+ public void dumpDbInfo(final FileDescriptor fd, final String[] args) {
+ if (mSystemThread) {
+ // Ensure this invocation is asynchronous to prevent
+ // writer waiting due to buffer cannot be consumed.
+ AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
+ @Override
+ public void run() {
+ dumpDatabaseInfo(fd, args);
+ }
+ });
+ } else {
+ dumpDatabaseInfo(fd, args);
+ }
+ }
+
+ @Override
public void unstableProviderDied(IBinder provider) {
sendMessage(H.UNSTABLE_PROVIDER_DIED, provider);
}