projects
/
folly.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make folly pass TSAN checks
[folly.git]
/
folly
/
test
/
SpinLockTest.cpp
diff --git
a/folly/test/SpinLockTest.cpp
b/folly/test/SpinLockTest.cpp
index b2387ea7b966e04998acf11b76c376a5c08ce686..67279a700f82367151b122f673fcb118616c2617 100644
(file)
--- a/
folly/test/SpinLockTest.cpp
+++ b/
folly/test/SpinLockTest.cpp
@@
-68,16
+68,19
@@
template <typename LOCK>
void trylockTestThread(TryLockState<LOCK>* state, size_t count) {
while (true) {
folly::asm_pause();
void trylockTestThread(TryLockState<LOCK>* state, size_t count) {
while (true) {
folly::asm_pause();
+ bool ret = state->lock2.try_lock();
SpinLockGuardImpl<LOCK> g(state->lock1);
if (state->obtained >= count) {
SpinLockGuardImpl<LOCK> g(state->lock1);
if (state->obtained >= count) {
+ if (ret) {
+ state->lock2.unlock();
+ }
break;
}
break;
}
- bool ret = state->lock2.try_lock();
- EXPECT_NE(state->locked, ret);
if (ret) {
// We got lock2.
if (ret) {
// We got lock2.
+ EXPECT_NE(state->locked, ret);
++state->obtained;
state->locked = true;
++state->obtained;
state->locked = true;