5#ifndef V8_BASE_PLATFORM_MUTEX_H_
6#define V8_BASE_PLATFORM_MUTEX_H_
10#include "absl/synchronization/mutex.h"
20class ConditionVariable;
105#define LAZY_MUTEX_INITIALIZER LAZY_STATIC_INSTANCE_INITIALIZER
160 std::atomic<int> thread_id_ = 0;
180#define LAZY_RECURSIVE_MUTEX_INITIALIZER LAZY_STATIC_INSTANCE_INITIALIZER
191template <
typename Mutex>
206 other.mutex_ =
nullptr;
LockGuard(const LockGuard &)=delete
LockGuard & operator=(const LockGuard &)=delete
LockGuard(LockGuard &&other) V8_NOEXCEPT
MutexGuardIf(Mutex *mutex, bool enable_mutex)
MutexGuardIf & operator=(const MutexGuardIf &)=delete
std::optional< MutexGuard > mutex_
MutexGuardIf(const MutexGuardIf &)=delete
Mutex(const Mutex &)=delete
V8_INLINE void AssertUnheldAndMark()
absl::Mutex native_handle_
V8_INLINE void AssertHeldAndUnmark()
Mutex & operator=(const Mutex &)=delete
RecursiveMutex(const RecursiveMutex &)=delete
RecursiveMutex & operator=(const RecursiveMutex &)=delete
#define DCHECK_NOT_NULL(val)
#define DCHECK_LT(v1, v2)
#define DCHECK_EQ(v1, v2)
#define V8_WARN_UNUSED_RESULT