diff options
| author | Martijn Coenen <maco@google.com> | 2020-04-01 16:37:51 +0200 |
|---|---|---|
| committer | Martijn Coenen <maco@google.com> | 2020-04-01 16:37:51 +0200 |
| commit | 956c1333a4b4113ee017207ff3dd36a011681262 (patch) | |
| tree | 79ce903a02ebd60f97ef8b96c91ae57536c50015 /core/java/android/os/BinderProxy.java | |
| parent | 7f212788d1fb42f4ef970f169a672e519abae351 (diff) | |
Disable the freezer while we're collecting binder interface descriptors.
These are synchronous calls out from system_server to many processes;
make sure we don't get hung up on them.
Bug: 152294322
Test: N/A
Change-Id: Ie6f9da6c7f5df346cc28e0968f70a898bcd52adf
Diffstat (limited to 'core/java/android/os/BinderProxy.java')
| -rw-r--r-- | core/java/android/os/BinderProxy.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/java/android/os/BinderProxy.java b/core/java/android/os/BinderProxy.java index 20e5f243163f..683993f762c0 100644 --- a/core/java/android/os/BinderProxy.java +++ b/core/java/android/os/BinderProxy.java @@ -251,6 +251,11 @@ public final class BinderProxy implements IBinder { } } } + // For gathering this debug output, we're making synchronous binder calls + // out of system_server to all processes hosting binder objects it holds a reference to; + // since some of those processes might be frozen, we don't want to block here + // forever. Disable the freezer. + Process.enableFreezer(false); for (WeakReference<BinderProxy> weakRef : proxiesToQuery) { BinderProxy bp = weakRef.get(); String key; @@ -273,6 +278,7 @@ public final class BinderProxy implements IBinder { counts.put(key, i + 1); } } + Process.enableFreezer(true); Map.Entry<String, Integer>[] sorted = counts.entrySet().toArray( new Map.Entry[counts.size()]); |
