28 template <
bool MayBlock,
template <
typename>
class Atom>
35 template <
bool MayBlock,
template <
typename>
class Atom>
42 for (
int i = 0;
i < numRounds; ++
i) {
48 for (
int i = 0;
i < numRounds; ++
i) {
56 template <
bool MayBlock,
template <
typename>
class Atom,
typename Clock>
64 template <
bool MayBlock,
template <
typename>
class Atom,
typename Clock>
76 template <
bool MayBlock,
template <
typename>
class Atom,
typename Clock>
84 auto farFuture =
Clock::now() + std::chrono::hours(1000);
100 std::this_thread::sleep_for(std::chrono::milliseconds(2));
107 template <
bool MayBlock,
template <
typename>
class Atom>
void run_pingpong_test(int numRounds)
void run_timed_wait_tmo_tests()
std::chrono::steady_clock::time_point now()
static std::thread thread(Func &&func, Args &&...args)
—— Concurrent Priority Queue Implementation ——
void run_timed_wait_regular_test()
FOLLY_ALWAYS_INLINE bool try_wait_until(const std::chrono::time_point< Clock, Duration > &deadline, const WaitOptions &opt=wait_options()) noexcept
FOLLY_ALWAYS_INLINE void wait(const WaitOptions &opt=wait_options()) noexcept
void run_basic_timed_wait_tests()
FOLLY_ALWAYS_INLINE bool ready() const noexcept
#define EXPECT_TRUE(condition)
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)
FOLLY_ALWAYS_INLINE bool try_wait() const noexcept
#define EXPECT_FALSE(condition)
static void join(std::thread &child)
DeterministicSchedule DSched
void run_try_wait_tests()