Binder currently may service an incoming oneway transaction whenever an outbound oneway call is made (if there is already a pending incoming oneway call waiting). The unexpected nested method call blocks forever on a recursive mutex acquire because healthd is single- threaded. The binder behavior is considered a bug and may change in the future. For now, work around this in healthd. Make a local copy of the listeners list, then drop the lock and perform the outbound calls on the local copy of the list. Bug: 38201220 Test: Marlin with modified client calling scheduleUpdate() repeatedly Change-Id: If35c2847556245921e2aff808ff747bb60356811 |
||
|---|---|---|
| .. | ||
| images | ||
| include/healthd | ||
| tests | ||
| Android.mk | ||
| animation.h | ||
| AnimationParser.cpp | ||
| AnimationParser.h | ||
| BatteryMonitor.cpp | ||
| BatteryPropertiesRegistrar.cpp | ||
| BatteryPropertiesRegistrar.h | ||
| healthd.cpp | ||
| healthd_board_default.cpp | ||
| healthd_mode_android.cpp | ||
| healthd_mode_charger.cpp | ||