AppOps: Fix yet another deadlock
A = AppOpsService.this B = PowerManagerService.mLock Thread 1: AppOpsService.noteOperation() (lock A) -> PowerManagerService.isInteractive() (lock B) Thread 2: PowerManagerService.acquireWakeLockInternal() (lock B) -> AppOpsService.startOperation() (lock A) Move PowerManagerService.isInteractive() so that 'Thread 1' becomes: PowerManagerService.isInteractive() (lock and release B) -> AppOpsService.noteOperation() (lock A) Change-Id: I6b2050bf6deaf6db94b9243c1a81c37e25ad55a2
Loading
Please register or sign in to comment