12 #include "gu_macros.h"
13 #include "gu_exception.hpp"
25 void operator=(
const Cond&);
28 pthread_cond_t
mutable cond;
29 long mutable ref_count;
33 Cond () : cond(), ref_count(0)
35 pthread_cond_init (&cond, NULL);
41 while (EBUSY == (ret = pthread_cond_destroy(&cond)))
43 if (gu_unlikely(ret != 0))
45 log_fatal <<
"pthread_cond_destroy() failed: " << ret
46 <<
" (" << strerror(ret) <<
". Aborting.";
51 inline void signal ()
const
54 int ret = pthread_cond_signal (&cond);
55 if (gu_unlikely(ret != 0))
56 throw Exception(
"pthread_cond_signal() failed", ret);
60 inline void broadcast ()
const
63 int ret = pthread_cond_broadcast (&cond);
64 if (gu_unlikely(ret != 0))
65 throw Exception(
"pthread_cond_broadcast() failed", ret);
Definition: gu_lock.hpp:20
Definition: gu_cond.hpp:19
Definition: gu_exception.hpp:19