diff --git a/gps/android/utils/battery_listener.cpp b/gps/android/utils/battery_listener.cpp index 9cbfabd..64ce2c8 100644 --- a/gps/android/utils/battery_listener.cpp +++ b/gps/android/utils/battery_listener.cpp @@ -184,16 +184,19 @@ BatteryListenerImpl::~BatteryListenerImpl() { { std::lock_guard _l(mLock); - if (mHealth != NULL) + if (mHealth != NULL) { mHealth->unregisterCallback(this); auto r = mHealth->unlinkToDeath(this); if (!r.isOk() || r == false) { LOC_LOGe("Transaction error in unregister to HealthHAL death: %s", r.description().c_str()); } + } } mDone = true; - mThread->join(); + if (NULL != mThread) { + mThread->join(); + } } void BatteryListenerImpl::serviceDied(uint64_t cookie __unused, @@ -210,7 +213,9 @@ void BatteryListenerImpl::serviceDied(uint64_t cookie __unused, } mHealth = NULL; mCond.notify_one(); - mThread->join(); + if (NULL != mThread) { + mThread->join(); + } std::lock_guard _l(mLock); init(); }