21 namespace perception {
26 Mutex() { pthread_mutex_init(&mu_,
nullptr); }
28 ~Mutex() { pthread_mutex_destroy(&mu_); }
30 inline void Lock() { pthread_mutex_lock(&mu_); }
32 inline void Unlock() { pthread_mutex_unlock(&mu_); }
34 inline bool TryLock() {
return pthread_mutex_trylock(&mu_) == 0; }
59 CondVar() { pthread_cond_init(&cv_,
nullptr); }
62 void Wait(
Mutex *mu) { pthread_cond_wait(&cv_, &mu->mu_); }
64 void Signal() { pthread_cond_signal(&cv_); }
87 return counter_ == 0u;
98 while (counter_ != 0u) {
114 RwMutex() { pthread_rwlock_init(&mu_,
nullptr); }
120 inline void Unlock() { pthread_rwlock_unlock(&mu_); }
126 pthread_rwlock_t mu_;
Mutex()
Definition: mutex.h:26
void Lock()
Definition: mutex.h:30
CondVar()
Definition: mutex.h:59
friend class CondVar
Definition: mutex.h:40
void WriterLock()
Definition: mutex.h:118
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
MutexLock(Mutex *mu)
Definition: mutex.h:46
RwMutex()
Definition: mutex.h:114
bool TryLock()
Definition: mutex.h:34
void Signalall()
Definition: mutex.h:66
~CondVar()
Definition: mutex.h:60
void Signal()
Definition: mutex.h:64
WriterMutexLock(RwMutex *mu)
Definition: mutex.h:143
void Unlock()
Definition: mutex.h:32
void Wait()
Definition: mutex.h:95
BlockingCounter(size_t cnt)
Definition: mutex.h:77
void Unlock()
Definition: mutex.h:120
~MutexLock()
Definition: mutex.h:47
ReaderMutexLock(RwMutex *mu)
Definition: mutex.h:131
void ReaderLock()
Definition: mutex.h:117
~RwMutex()
Definition: mutex.h:115
void Reset(size_t cnt)
Definition: mutex.h:90
void Wait(Mutex *mu)
Definition: mutex.h:62
~WriterMutexLock()
Definition: mutex.h:144
~Mutex()
Definition: mutex.h:28
Mutex & operator=(const Mutex &)=delete
~ReaderMutexLock()
Definition: mutex.h:132
bool Decrement()
Definition: mutex.h:79