プロトタイプ: 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; /* 条件変数でブロック */ ret = pthread_cond_reltimedwait_np(&cv, &mp, &reltime); |
pthread_cond_reltimedwait_np(3THR) の使用方法は、pthread_cond_timedwait() の場合と同じです。ただし、pthread_cond_reltimedwait_np() の最後の引数には、未来の絶対日時ではなく、相対時間間隔を指定します。pthread_cond_reltimedwait_np() は、たとえエラーを戻したときでも、常に mutex は呼び出しスレッドがロックして保持している状態で戻ります (Solaris スレッドについては cond_reltimedwait(3THR)を参照)。 pthread_cond_reltimedwait_np () 関数は、条件のシグナルを受け取るか、最後の引数に指定されている時間間隔が経過するまで、ブロックします。
pthread_cond_reltimedwait_np() は、取り消しポイントでもあります。
正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、次の値を戻します。