예제 #1
0
 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);
     }
 }
예제 #2
0
파일: gu_to.c 프로젝트: latinovic/galera
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;
}