diff options
author | alk3pInjection <webmaster@raspii.tech> | 2022-05-01 20:50:40 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2022-05-01 20:50:40 +0800 |
commit | 5b2cac52ba778c82474b770b8218f12b200abbba (patch) | |
tree | aa6a2935fe22ca8ee764f8d0c5637cc9e540a5f5 /modules/sensors/dynamic_sensor/DynamicSensorManager.h | |
parent | fff55eaf71d44da7a003bccc4f835351b61efd6e (diff) | |
parent | 05445d8b448ea0349822250fa0c2a6f651289736 (diff) |
Merge tag 'LA.QSSI.12.0.r1-06800-qssi.0' into sugisawa-mr1HEADsugisawa-mr1
"LA.QSSI.12.0.r1-06800-qssi.0"
Change-Id: I3c5a85f5c37b5bba1590d2aa8f67e5b3f01939c8
Diffstat (limited to 'modules/sensors/dynamic_sensor/DynamicSensorManager.h')
-rw-r--r-- | modules/sensors/dynamic_sensor/DynamicSensorManager.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/modules/sensors/dynamic_sensor/DynamicSensorManager.h b/modules/sensors/dynamic_sensor/DynamicSensorManager.h index b6f39da6..264582ec 100644 --- a/modules/sensors/dynamic_sensor/DynamicSensorManager.h +++ b/modules/sensors/dynamic_sensor/DynamicSensorManager.h @@ -95,15 +95,18 @@ private: // TF: int foo(sp<BaseSensorObject> obj); template <typename TF> int operateSensor(int handle, TF f) const { - std::lock_guard<std::mutex> lk(mLock); - const auto i = mMap.find(handle); - if (i == mMap.end()) { - return BAD_VALUE; - } - sp<BaseSensorObject> s = i->second.promote(); - if (s == nullptr) { - // sensor object is already gone - return BAD_VALUE; + sp<BaseSensorObject> s; + { + std::lock_guard<std::mutex> lk(mLock); + const auto i = mMap.find(handle); + if (i == mMap.end()) { + return BAD_VALUE; + } + s = i->second.promote(); + if (s == nullptr) { + // sensor object is already gone + return BAD_VALUE; + } } return f(s); } @@ -111,6 +114,7 @@ private: // available sensor handle space const std::pair<int, int> mHandleRange; sensor_t mMetaSensor; + bool mMetaSensorActive = false; // immutable pointer to event callback, used in extention mode. SensorEventCallback * const mCallback; |