13 #include "gu_macros.h"
15 #include "gu_throw.hpp"
25 gu_mutex_init (&value, NULL);
30 int err = gu_mutex_destroy (&value);
31 if (gu_unlikely(err != 0))
33 gu_throw_error (err) <<
"pthread_mutex_destroy()";
39 gu_mutex_lock(&value);
44 gu_mutex_unlock(&value);
49 gu_mutex_t
mutable value;
64 pthread_mutexattr_t mattr;
65 pthread_mutexattr_init(&mattr);
66 pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_RECURSIVE);
67 pthread_mutex_init(&mutex_, &mattr);
68 pthread_mutexattr_destroy(&mattr);
73 pthread_mutex_destroy(&mutex_);
78 if (pthread_mutex_lock(&mutex_)) gu_throw_fatal;
83 if (pthread_mutex_unlock(&mutex_)) gu_throw_fatal;
90 pthread_mutex_t mutex_;
Definition: gu_mutex.hpp:59
Definition: gu_lock.hpp:20
Definition: gu_mutex.hpp:19