summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_reader_win.cc4
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_reader_win.h8
2 files changed, 8 insertions, 4 deletions
diff --git a/chromium/services/device/generic_sensor/platform_sensor_reader_win.cc b/chromium/services/device/generic_sensor/platform_sensor_reader_win.cc
index 93c9e059434..0b654d8b2fe 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_reader_win.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_reader_win.cc
@@ -485,7 +485,8 @@ bool PlatformSensorReaderWin::SetReportingInterval(
HRESULT PlatformSensorReaderWin::SensorReadingChanged(
ISensorDataReport* report,
- SensorReading* reading) const {
+ SensorReading* reading) {
+ base::AutoLock autolock(lock_);
if (!client_)
return E_FAIL;
@@ -496,6 +497,7 @@ HRESULT PlatformSensorReaderWin::SensorReadingChanged(
}
void PlatformSensorReaderWin::SensorError() {
+ base::AutoLock autolock(lock_);
if (client_)
client_->OnSensorError();
}
diff --git a/chromium/services/device/generic_sensor/platform_sensor_reader_win.h b/chromium/services/device/generic_sensor/platform_sensor_reader_win.h
index 8b31ae2f4a0..f14474a1ede 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_reader_win.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_reader_win.h
@@ -8,6 +8,8 @@
#include <SensorsApi.h>
#include <wrl/client.h>
+#include "base/synchronization/lock.h"
+#include "base/thread_annotations.h"
#include "services/device/public/mojom/sensor.mojom.h"
namespace device {
@@ -56,7 +58,7 @@ class PlatformSensorReaderWin {
bool SetReportingInterval(const PlatformSensorConfiguration& configuration);
void ListenSensorEvent();
HRESULT SensorReadingChanged(ISensorDataReport* report,
- SensorReading* reading) const;
+ SensorReading* reading);
void SensorError();
private:
@@ -68,8 +70,8 @@ class PlatformSensorReaderWin {
// StartSensor and StopSensor are called from another thread by
// PlatformSensorWin that can modify internal state of the object.
base::Lock lock_;
- bool sensor_active_;
- Client* client_;
+ bool sensor_active_ GUARDED_BY(lock_);
+ Client* client_ GUARDED_BY(lock_);
Microsoft::WRL::ComPtr<ISensor> sensor_;
scoped_refptr<EventListener> event_listener_;
base::WeakPtrFactory<PlatformSensorReaderWin> weak_factory_;