Avoid deadlock if HAL dies at init
am: 6d2e37562f
Change-Id: I20542e749efd369d5251539b32caa76a5c0d9435
diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp
index 4072cff..717f317 100644
--- a/services/sensorservice/SensorDevice.cpp
+++ b/services/sensorservice/SensorDevice.cpp
@@ -1012,7 +1012,7 @@
}
void SensorDevice::handleHidlDeath(const std::string & detail) {
- if (!SensorDevice::getInstance().mSensors->supportsMessageQueues()) {
+ if (!mSensors->supportsMessageQueues()) {
// restart is the only option at present.
LOG_ALWAYS_FATAL("Abort due to ISensors hidl service failure, detail: %s.", detail.c_str());
} else {
diff --git a/services/sensorservice/SensorDevice.h b/services/sensorservice/SensorDevice.h
index e99ad9b..d2c6994 100644
--- a/services/sensorservice/SensorDevice.h
+++ b/services/sensorservice/SensorDevice.h
@@ -211,14 +211,14 @@
status_t batchLocked(void* ident, int handle, int flags, int64_t samplingPeriodNs,
int64_t maxBatchReportLatencyNs);
- static void handleHidlDeath(const std::string &detail);
+ void handleHidlDeath(const std::string &detail);
template<typename T>
- static void checkReturn(const Return<T>& ret) {
+ void checkReturn(const Return<T>& ret) {
if (!ret.isOk()) {
handleHidlDeath(ret.description());
}
}
- static status_t checkReturnAndGetStatus(const Return<Result>& ret);
+ status_t checkReturnAndGetStatus(const Return<Result>& ret);
//TODO(b/67425500): remove waiter after bug is resolved.
sp<SensorDeviceUtils::HidlServiceRegistrationWaiter> mRestartWaiter;