21 #ifndef ATSCPPAPI_MUTEX_H_
22 #define ATSCPPAPI_MUTEX_H_
59 pthread_mutexattr_t attr;
60 pthread_mutexattr_init(&attr);
64 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
67 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
71 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
75 pthread_mutex_init(&mutex, &attr);
79 pthread_mutex_destroy(&mutex);
87 return !pthread_mutex_trylock(&mutex);
94 pthread_mutex_lock(&mutex);
101 pthread_mutex_unlock(&mutex);
104 pthread_mutex_t mutex;
162 shared_ptr<Mutex> mutex_;
180 mutex_(mutex), has_lock_(false) {
219 mutex_(mutex), has_lock_(false) {
220 has_lock_ = mutex_->tryLock();
239 shared_ptr<Mutex> mutex_;