| Index: device/base/synchronization/one_writer_seqlock.cc
|
| diff --git a/device/base/synchronization/one_writer_seqlock.cc b/device/base/synchronization/one_writer_seqlock.cc
|
| index 7b855cfd1cb4c79c464527cd71436ae23c470bcb..b0eb3810dd4e291bedb72feeb2a49ddee698df25 100644
|
| --- a/device/base/synchronization/one_writer_seqlock.cc
|
| +++ b/device/base/synchronization/one_writer_seqlock.cc
|
| @@ -24,6 +24,17 @@ base::subtle::Atomic32 OneWriterSeqLock::ReadBegin() const {
|
| return version;
|
| }
|
|
|
| +void OneWriterSeqLock::TryRead(bool* can_read,
|
| + base::subtle::Atomic32* version) const {
|
| + DCHECK(can_read);
|
| + DCHECK(version);
|
| +
|
| + *version = base::subtle::NoBarrier_Load(&sequence_);
|
| + // If the counter is even, then the associated data might be in a
|
| + // consistent state, so we can try to read.
|
| + *can_read = (*version & 1) == 0;
|
| +}
|
| +
|
| bool OneWriterSeqLock::ReadRetry(base::subtle::Atomic32 version) const {
|
| // If the sequence number was updated then a read should be re-attempted.
|
| // -- Load fence, read membarrier
|
|
|