pthread_cond_reltimedwait_np(3C) の使用方法は、1 点を除いて、pthread_cond_timedwait() の使用方法と同じです。 pthread_cond_reltimedwait_np() の場合は、最後の引数として、未来の絶対日時ではなく相対時間間隔を指定します。
int pthread_cond_reltimedwait_np(pthread_cond_t *cv, pthread_mutex_t *mp, const struct timespec *reltime);
#include <pthread.h> #include <time.h> pthread_cond_t cv; pthread_mutex_t mp; timestruct_t reltime; int ret; /* wait on condition variable */ ret = pthread_cond_reltimedwait_np(&cv, &mp, &reltime);
pthread_cond_reltimedwait_np() は、たとえエラーを返す場合でも、常に呼び出しスレッドが mutex ロックし、所有した状態で終了します。()pthread_cond_reltimedwait_np() 関数は、条件のシグナルを受け取るか、最後の引数に指定されている時間間隔が経過するまで、ブロックします。
pthread_cond_reltimedwait_np() は、取り消しポイントでもあります。
pthread_cond_reltimedwait_np() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、次の値を戻します。
EINVAL
説明:reltime で指定された値が無効です。
ETIMEDOUT
説明:reltime に指定されている時間間隔が経過しました。