diff options
author | Craig Mautner <cmautner@google.com> | 2015-01-13 20:33:08 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-01-13 20:33:08 +0000 |
commit | 91934a3b2f05772922e900ddd270825ff8d10a64 (patch) | |
tree | e6a4cb5ffca87e82d0822ce37d6cdbc4e14107fa /core/java/android/app | |
parent | cb4a489fd11015209519897bffe5230f8aafc89e (diff) | |
parent | 19c549fc735bf8a1df5cccb6cc0cdf46c7d242a4 (diff) | |
download | frameworks_base-91934a3b2f05772922e900ddd270825ff8d10a64.zip frameworks_base-91934a3b2f05772922e900ddd270825ff8d10a64.tar.gz frameworks_base-91934a3b2f05772922e900ddd270825ff8d10a64.tar.bz2 |
am 19c549fc: am 1e263d3f: am 66b4d484: Merge "Prevent system server dump stuck by pipe buffer full."
* commit '19c549fc735bf8a1df5cccb6cc0cdf46c7d242a4':
Prevent system server dump stuck by pipe buffer full.
Diffstat (limited to 'core/java/android/app')
-rw-r--r-- | core/java/android/app/ActivityThread.java | 19 |
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); } |