8 #include "gtest/gtest_prod.h"
13 #ifdef CVMFS_NAMESPACE_GUARD
14 namespace CVMFS_NAMESPACE_GUARD {
26 FRIEND_TEST(T_Fence, Basics);
30 atomic_init64(&counter_);
31 atomic_init32(&blocking_);
35 while (atomic_read32(&blocking_)) {
38 atomic_inc64(&counter_);
42 atomic_dec64(&counter_);
46 atomic_cas32(&blocking_, 0, 1);
54 while (atomic_read64(&counter_) > 0) {
60 atomic_cas32(&blocking_, 1, 0);
64 static const unsigned kBusyWaitBackoffMs = 100;
94 #ifdef CVMFS_NAMESPACE_GUARD
98 #endif // CVMFS_FENCE_H_
void SafeSleepMs(const unsigned ms)