SuperVersion::Unref() to use sequential consistency to decrease ref counting

Summary: I'm not sure the expected results of std::atomic::fetch_sub() when using memory_order_relaxed, and I suspect TSAN complains.

Test Plan: make all check

Reviewers: rven, yhchiang, igor

Reviewed By: igor

Subscribers: leveldb, dhruba

Differential Revision: https://reviews.facebook.net/D32259
This commit is contained in:
sdong 2015-01-27 13:57:44 -08:00
parent 4c49fedaf1
commit e919ecedfc

View File

@ -181,7 +181,7 @@ SuperVersion* SuperVersion::Ref() {
bool SuperVersion::Unref() {
// fetch_sub returns the previous value of ref
uint32_t previous_refs = refs.fetch_sub(1, std::memory_order_relaxed);
uint32_t previous_refs = refs.fetch_sub(1);
assert(previous_refs > 0);
return previous_refs == 1;
}