summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-11-06 01:07:13 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-11-06 01:07:13 +0000
commit02cffb0d6b30458fbc69c11c73f35e87fbaebf72 (patch)
tree94db486a042c231509a1f4b7463b2f56081434e5
parentf7a948d700e6180349338cc5410199ada2cf28ba (diff)
parent24ead9d84a9d9ef077f4d44995e2add9a79a206d (diff)
downloadlibhardware-02cffb0d6b30458fbc69c11c73f35e87fbaebf72.tar.gz
Snap for 7889170 from 24ead9d84a9d9ef077f4d44995e2add9a79a206d to sc-v2-release
Change-Id: I7b33f68f6ea4aaf8b69310a2db593146f8de6aa4
-rw-r--r--modules/sensors/dynamic_sensor/DynamicSensorManager.h21
1 files changed, 12 insertions, 9 deletions
diff --git a/modules/sensors/dynamic_sensor/DynamicSensorManager.h b/modules/sensors/dynamic_sensor/DynamicSensorManager.h
index 634c5234..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);
}