inline void signal () const { if (ref_count > 0) { int ret = gu_cond_signal (&cond); if (gu_unlikely(ret != 0)) throw Exception("gu_cond_signal() failed", ret); } }
static inline long to_wake_waiter (to_waiter_t* w) { long err = 0; if (w->state == WAIT) { #ifdef TO_USE_SIGNAL err = gu_cond_signal (&w->cond); #else err = pthread_mutex_unlock (&w->mtx); #endif if (err) { gu_fatal ("gu_cond_signal failed: %d", err); } } return err; }