マルチスレッドのプログラミング

時間間隔によるブロック

cond_reltimedwait(3THR)


#include <thread.h>

int cond_reltimedwait(cond_t *cv, mutex_t *mp,
    timestruct_t reltime);

cond_reltimedwait(3THR) は、cond_timedwait() と同じように動作します。ただし、3 番目の引数には、絶対時刻ではなく相対時間間隔を指定します (POSIX スレッドについては、pthread_cond_reltimedwait_np(3THR) を参照)。

cond_reltimedwait() が戻るときは、たとえエラーを戻したときでも、常に mutex は呼び出しスレッドがロックし保持している状態にあります。cond_reltimedwait() のブロック状態が解除されるのは、条件変数にシグナルが送られたときか、最後の引数で指定した時間間隔が経過したときです。