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:
Connor O'Brien
2017-05-08 12:14:06 -07:00
parent 1c38d29482
commit a9703163c0

View File

@@ -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;