diff options
| author | 2023-04-27 11:31:56 -0700 | |
|---|---|---|
| committer | 2023-04-28 00:10:17 +0000 | |
| commit | 83f4c75f8030254093e514220a2ea361ecc7a044 (patch) | |
| tree | 2861bf71afe16adc0874ccffe2b47c6240729d7e /libs/androidfw/ObbFile.cpp | |
| parent | ee1c8091c89b5e4644897111bfc998aad8716bb3 (diff) | |
CachedAppOptimizer: update pending freeze inside the process lock
Only update pending freeze once mProcLock has been acquired. If this
doesn't happen, the following is possible:
1. FreezeHandler calls setPendingFreeze(false)
2. FreezeHandler blocks on mProcLock, held by someone
3. BroadcastQueue calls notifyStartedRunning
4. BroadcastQueue calls unfreezeTemporarily, which grabs mProcLock
5. BQ wins mProcLock race and sees opt.isPendingFreeze == false
and opt.isFrozen == false so skips unfreeze
6. FreezeHandler wakes up, grabs mProcLock, and freezes the process
Test: boots
Bug: 267949291
Change-Id: I52ab99f3b838e86d187a5a2a27652f78896ffaa4
Diffstat (limited to 'libs/androidfw/ObbFile.cpp')
0 files changed, 0 insertions, 0 deletions