diff options
| author | jorgegil@google.com <jorgegil@google.com> | 2021-10-13 14:20:14 -0700 |
|---|---|---|
| committer | jorgegil@google.com <jorgegil@google.com> | 2021-10-13 14:20:14 -0700 |
| commit | 6e11e049e9150d7eeb8acfe0b8c58ebd4692ddf6 (patch) | |
| tree | 6dbc293e29253f3e0f3f362db8425517061459bd /opengl/java/android/opengl/Material.java | |
| parent | f23eb51da9c58fb4f4ca2b0cad66fced8e23e7d7 (diff) | |
Dump DisplayModeDirector state without locking mSyncRoot
The current locking order of DisplayManagerGlobal.mLock,
DisplayManagerService.mSyncRoot and SensorObserver.mSensorObserverLock
may cause a deadlock when an EVENT_DISPLAY_CHANGED event is handled
by MediaRouter.Static and DMD.SensorObserver at the same time as
a DisplayManagerService dump is in progress.
The locking order of onDisplayChanged is:
- mSensorObserverLock -> DMG.mLock -> DMS.mSyncRoot
The locking order of DMS.dumpInternal is:
- DMS.mSyncRoot -> mSensorOberverLock
This change removes the mSyncRoot locking during the DMD dump to keep
the lock ordering from going in a cycle. DMD already guards its state
during a dump with its own class lock, so holding mSyncRoot is not
really necessary.
Bug: 202515175
Test: builds
Change-Id: I464e570e7107b49633e599b25ef1d208c9fc76aa
Diffstat (limited to 'opengl/java/android/opengl/Material.java')
0 files changed, 0 insertions, 0 deletions
