vold: fix idlemaint abort may hold the wakelock

when the idlemaint run is working, if two or more idlemaint abort concurrency are working.
all idlemaint abort will hold the wakelock, until idlemaint run finished,
but it just nofity one idlemaint abort thread to stop and release the wakelock.
Remaining idlemaint abort threads will hold the wakelock until next idlemaint run to notify them.

Bug: 292383791
Test: see the issue Description

Change-Id: I5312be2e0e92c41483cab26e627a4ae562e5aed8
This commit is contained in:
Li Chong 2023-07-24 11:29:40 +08:00
parent c7bed872c0
commit 5b224dc337

View file

@ -436,7 +436,7 @@ int RunIdleMaint(bool needGC, const android::sp<android::os::IVoldTaskListener>&
idle_maint_stat = IdleMaintStats::kStopped;
lk.unlock();
cv_stop.notify_one();
cv_stop.notify_all();
if (listener) {
android::os::PersistableBundle extras;