#ifndef BENCHMARK_MUTEX_H_
#define BENCHMARK_MUTEX_H_
#include <condition_variable>
#include <mutex>
#include "check.h"
#if defined(HAVE_THREAD_SAFETY_ATTRIBUTES)
#define THREAD_ANNOTATION_ATTRIBUTE_(x) …
#else
#define THREAD_ANNOTATION_ATTRIBUTE_ …
#endif
#define CAPABILITY(x) …
#define SCOPED_CAPABILITY …
#define GUARDED_BY(x) …
#define PT_GUARDED_BY(x) …
#define ACQUIRED_BEFORE(...) …
#define ACQUIRED_AFTER(...) …
#define REQUIRES(...) …
#define REQUIRES_SHARED(...) …
#define ACQUIRE(...) …
#define ACQUIRE_SHARED(...) …
#define RELEASE(...) …
#define RELEASE_SHARED(...) …
#define TRY_ACQUIRE(...) …
#define TRY_ACQUIRE_SHARED(...) …
#define EXCLUDES(...) …
#define ASSERT_CAPABILITY(x) …
#define ASSERT_SHARED_CAPABILITY(x) …
#define RETURN_CAPABILITY(x) …
#define NO_THREAD_SAFETY_ANALYSIS …
namespace benchmark {
Condition;
class CAPABILITY("mutex") Mutex { … };
class SCOPED_CAPABILITY MutexLock { … };
class Barrier { … };
}
#endif