Index: content/browser/gamepad/gamepad_provider.cc |
diff --git a/content/browser/gamepad/gamepad_provider.cc b/content/browser/gamepad/gamepad_provider.cc |
index 642e2445a7bbe8fa0d0fc8fa7fd1fcbe2827c101..35b9e3f0afc398295f861e1f3c6cd697022b035d 100644 |
--- a/content/browser/gamepad/gamepad_provider.cc |
+++ b/content/browser/gamepad/gamepad_provider.cc |
@@ -119,9 +119,11 @@ void Provider::DoInitializePollingThread() { |
void Provider::DoPoll() { |
DCHECK(MessageLoop::current() == polling_thread_->message_loop()); |
GamepadHardwareBuffer* hwbuf = SharedMemoryAsHardwareBuffer(); |
- base::subtle::Barrier_AtomicIncrement(&hwbuf->start_marker, 1); |
+ // Acquire the SeqLock. There is only ever one writer to this data. |
+ // See gamepad_hardware_buffer.h. |
+ hwbuf->sequence.WriteBegin(); |
data_fetcher_->GetGamepadData(&hwbuf->buffer, devices_changed_); |
- base::subtle::Barrier_AtomicIncrement(&hwbuf->end_marker, 1); |
+ hwbuf->sequence.WriteEnd(); |
devices_changed_ = false; |
// Schedule our next interval of polling. |
ScheduleDoPoll(); |