Commit 72892854 authored by Brian White's avatar Brian White Committed by Commit Bot

Use Acquire/Release for bucket-ranges persistent reference.

When memory blocks are found by iteration, it is synchronized.  When
the blocks are passed directly by reference, those references need
acquire/release semantics.

Bug: 749328
Change-Id: I87c8888cc2153ab027ee51791fd64d095b1d59e8
Reviewed-on: https://chromium-review.googlesource.com/596273Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
Commit-Queue: Brian White <bcwhite@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491507}
parent 651ac81c
...@@ -68,10 +68,10 @@ class BASE_EXPORT BucketRanges { ...@@ -68,10 +68,10 @@ class BASE_EXPORT BucketRanges {
// safety against overwriting an existing value since though it is wasteful // safety against overwriting an existing value since though it is wasteful
// to have multiple identical persistent records, it is still safe. // to have multiple identical persistent records, it is still safe.
void set_persistent_reference(uint32_t ref) const { void set_persistent_reference(uint32_t ref) const {
subtle::NoBarrier_Store(&persistent_reference_, ref); subtle::Release_Store(&persistent_reference_, ref);
} }
uint32_t persistent_reference() const { uint32_t persistent_reference() const {
return subtle::NoBarrier_Load(&persistent_reference_); return subtle::Acquire_Load(&persistent_reference_);
} }
private: private:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment