diff options
author | Dianne Hackborn <hackbod@google.com> | 2015-07-15 23:30:49 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-07-15 23:31:02 +0000 |
commit | 67e02e60ca58db95b397fde7bfeeebb012e8aff8 (patch) | |
tree | 0b5766d29e0ed5ac2588f7075d9b3337c1ad4472 /services/core/java | |
parent | c4e2bcd4dca0401ca38a45dce04d29b92231d677 (diff) | |
parent | 16f3671620bab310f5ed4f9222d4a36a8dcef562 (diff) | |
download | frameworks_base-67e02e60ca58db95b397fde7bfeeebb012e8aff8.zip frameworks_base-67e02e60ca58db95b397fde7bfeeebb012e8aff8.tar.gz frameworks_base-67e02e60ca58db95b397fde7bfeeebb012e8aff8.tar.bz2 |
Merge "Fix issue #22487155: Device unresponsive (deadlock in system_server)" into mnc-dev
Diffstat (limited to 'services/core/java')
-rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 37aa408..1582037 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -10801,6 +10801,8 @@ public final class ActivityManagerService extends ActivityManagerNative } // We are now ready to launch the assist activity. + IResultReceiver sendReceiver = null; + Bundle sendBundle = null; synchronized (this) { buildAssistBundleLocked(pae, extras); boolean exists = mPendingAssistExtras.remove(pae); @@ -10809,19 +10811,21 @@ public final class ActivityManagerService extends ActivityManagerNative // Timed out. return; } - if (pae.receiver != null) { + if ((sendReceiver=pae.receiver) != null) { // Caller wants result sent back to them. - Bundle topBundle = new Bundle(); - topBundle.putBundle("data", pae.extras); - topBundle.putParcelable("structure", pae.structure); - topBundle.putParcelable("content", pae.content); - try { - pae.receiver.send(0, topBundle); - } catch (RemoteException e) { - } - return; + sendBundle = new Bundle(); + sendBundle.putBundle("data", pae.extras); + sendBundle.putParcelable("structure", pae.structure); + sendBundle.putParcelable("content", pae.content); } } + if (sendReceiver != null) { + try { + sendReceiver.send(0, sendBundle); + } catch (RemoteException e) { + } + return; + } long ident = Binder.clearCallingIdentity(); try { |