diff --git a/utils/include/sensor_basic_data_channel.h b/utils/include/sensor_basic_data_channel.h index a98543c28e7a8ba8cb9fda9cd160421e39fd01aa..0c587b4c051207630cfb72608a37d4edec12df77 100644 --- a/utils/include/sensor_basic_data_channel.h +++ b/utils/include/sensor_basic_data_channel.h @@ -49,6 +49,7 @@ private: bool isActive_; std::mutex statusLock_; std::unordered_map dataCacheBuf_; + std::mutex destroyMutex_; }; } // namespace Sensors } // namespace OHOS diff --git a/utils/src/sensor_basic_data_channel.cpp b/utils/src/sensor_basic_data_channel.cpp index 3532b9cfb6f135c153e88f0c96db617cdd935844..d141233434db8606ca059adc33f8343ee02c0615 100755 --- a/utils/src/sensor_basic_data_channel.cpp +++ b/utils/src/sensor_basic_data_channel.cpp @@ -187,6 +187,7 @@ int32_t SensorBasicDataChannel::GetReceiveDataFd() const int32_t SensorBasicDataChannel::DestroySensorBasicChannel() { + std::lock_guard destroyLock(destroyMutex_); if (sendFd_ >= 0) { close(sendFd_); sendFd_ = -1;