proxygen
DeterministicSchedule.h File Reference
#include <assert.h>
#include <boost/noncopyable.hpp>
#include <errno.h>
#include <glog/logging.h>
#include <atomic>
#include <functional>
#include <mutex>
#include <queue>
#include <thread>
#include <unordered_set>
#include <vector>
#include <folly/ScopeGuard.h>
#include <folly/concurrency/CacheLocality.h>
#include <folly/detail/Futex.h>
#include <folly/portability/Semaphore.h>
#include <folly/synchronization/detail/AtomicUtils.h>

Go to the source code of this file.

Classes

class  folly::test::DeterministicSchedule
 
struct  folly::test::DeterministicAtomicImpl< T, Schedule, Atom >
 
struct  folly::test::DeterministicMutex
 

Namespaces

 folly
 —— Concurrent Priority Queue Implementation ——
 
 folly::test
 

Macros

#define FOLLY_TEST_DSCHED_VLOG(...)
 

Typedefs

using folly::test::AuxAct = std::function< void(bool)>
 
using folly::test::AuxChk = std::function< void(uint64_t)>
 
template<typename T >
using folly::test::DeterministicAtomic = DeterministicAtomicImpl< T, DeterministicSchedule >
 

Functions

int folly::test::futexWakeImpl (const detail::Futex< test::DeterministicAtomic > *futex, int count, uint32_t wakeMask)
 
detail::FutexResult folly::test::futexWaitImpl (const detail::Futex< test::DeterministicAtomic > *futex, uint32_t expected, std::chrono::system_clock::time_point const *absSystemTime, std::chrono::steady_clock::time_point const *absSteadyTime, uint32_t waitMask)
 
template<typename Integer >
void folly::test::atomic_wait (const DeterministicAtomic< Integer > *, Integer)
 
template<typename Integer , typename Clock , typename Duration >
std::cv_status folly::test::atomic_wait_until (const DeterministicAtomic< Integer > *, Integer, const std::chrono::time_point< Clock, Duration > &)
 
template<typename Integer >
void folly::test::atomic_notify_one (const DeterministicAtomic< Integer > *)
 
template<typename Integer >
void folly::test::atomic_notify_all (const DeterministicAtomic< Integer > *)
 

Macro Definition Documentation

#define FOLLY_TEST_DSCHED_VLOG (   ...)
Value:
do { \
if (false) { \
VLOG(2) << std::hex << std::this_thread::get_id() << ": " \
<< __VA_ARGS__; \
} \
} while (false)
if(FOLLY_USE_SYMBOLIZER) add_library(folly_exception_tracer_base ExceptionTracer.cpp StackTrace.cpp) apply_folly_compile_options_to_target(folly_exception_tracer_base) target_link_libraries(folly_exception_tracer_base PUBLIC folly) add_library(folly_exception_tracer ExceptionStackTraceLib.cpp ExceptionTracerLib.cpp) apply_folly_compile_options_to_target(folly_exception_tracer) target_link_libraries(folly_exception_tracer PUBLIC folly_exception_tracer_base) add_library(folly_exception_counter ExceptionCounterLib.cpp) apply_folly_compile_options_to_target(folly_exception_counter) target_link_libraries(folly_exception_counter PUBLIC folly_exception_tracer) install(FILES ExceptionAbi.h ExceptionCounterLib.h ExceptionTracer.h ExceptionTracerLib.h StackTrace.h DESTINATION $
Definition: CMakeLists.txt:1

Definition at line 42 of file DeterministicSchedule.h.

Referenced by folly::test::DeterministicSchedule::beforeThreadExit(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::compare_exchange_strong(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::compare_exchange_weak(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::exchange(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::fetch_add(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::fetch_and(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::fetch_or(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::fetch_sub(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::fetch_xor(), folly::test::futexWaitImpl(), folly::test::futexWakeImpl(), folly::test::DeterministicSchedule::join(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::load(), folly::test::DeterministicMutex::lock(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::operator T(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::operator&=(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::operator++(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::operator+=(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::operator--(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::operator-=(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::operator=(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::operator^=(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::operator|=(), folly::test::DeterministicSchedule::post(), folly::test::DeterministicAtomicImpl< T, Schedule, Atom >::store(), TEST(), folly::test::DeterministicMutex::try_lock(), folly::test::DeterministicSchedule::tryWait(), and folly::test::DeterministicMutex::unlock().