diff options
| author | 2024-10-15 00:50:43 +0000 | |
|---|---|---|
| committer | 2024-10-15 00:50:43 +0000 | |
| commit | a26652b0efc85bb8da1fb7f11a59929238f85b8a (patch) | |
| tree | e50f77249ae39506ba52c61ca2ce953d92fffd48 | |
| parent | 9a01911addef254b95d2297a71e8064325103d8a (diff) | |
| parent | df75cf60875e87f3445c117def03064e408394c7 (diff) | |
Merge "libbinder: also avaid sWarningCallback lock" into main
| -rw-r--r-- | libs/binder/BpBinder.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/binder/BpBinder.cpp b/libs/binder/BpBinder.cpp index eae844ca03..3758b6521c 100644 --- a/libs/binder/BpBinder.cpp +++ b/libs/binder/BpBinder.cpp @@ -197,7 +197,9 @@ sp<BpBinder> BpBinder::create(int32_t handle, std::function<void()>* postTask) { && currentValue < sBinderProxyCountHighWatermark && ((trackedValue & WARNING_REACHED_MASK) == 0)) [[unlikely]] { sTrackingMap[trackedUid] |= WARNING_REACHED_MASK; - if (sWarningCallback) sWarningCallback(trackedUid); + if (sWarningCallback) { + *postTask = [=]() { sWarningCallback(trackedUid); }; + } } else if (currentValue >= sBinderProxyCountHighWatermark) { ALOGE("Too many binder proxy objects sent to uid %d from uid %d (%d proxies held)", getuid(), trackedUid, trackedValue); |