PowerManagerService: open power HAL less aggressively
Once the power HAL has failed to open once, don't try to open it again on subsequent calls to the service. Test: remove power HAL on marlin & confirm log spam stops. Bug: 38028137 Change-Id: If7bc4f7080e8822b68da0d1bd81df8de1ce388aa Signed-off-by: Connor O'Brien <connoro@google.com>
This commit is contained in:
@@ -57,6 +57,7 @@ static struct {
|
||||
|
||||
static jobject gPowerManagerServiceObj;
|
||||
sp<IPower> gPowerHal = nullptr;
|
||||
bool gPowerHalExists = true;
|
||||
std::mutex gPowerHalMutex;
|
||||
static nsecs_t gLastEventTime[USER_ACTIVITY_EVENT_LAST + 1];
|
||||
|
||||
@@ -78,12 +79,13 @@ static bool checkAndClearExceptionFromCallback(JNIEnv* env, const char* methodNa
|
||||
// Check validity of current handle to the power HAL service, and call getService() if necessary.
|
||||
// The caller must be holding gPowerHalMutex.
|
||||
bool getPowerHal() {
|
||||
if (gPowerHal == nullptr) {
|
||||
if (gPowerHalExists && gPowerHal == nullptr) {
|
||||
gPowerHal = IPower::getService();
|
||||
if (gPowerHal != nullptr) {
|
||||
ALOGI("Loaded power HAL service");
|
||||
} else {
|
||||
ALOGI("Couldn't load power HAL service");
|
||||
gPowerHalExists = false;
|
||||
}
|
||||
}
|
||||
return gPowerHal != nullptr;
|
||||
|
||||
Reference in New Issue
Block a user