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

時間間隔によるブロック

cond_reltimedwait(3C) は、3 番目の引数の値を除いて、cond_timedwait() と非常によく似ています。cond_reltimedwait() の 3 番目の引数には、絶対的な時刻ではなく、相対的な時間間隔値を指定します。POSIX スレッドの場合については、pthread_cond_reltimedwait_np(3C) のマニュアルページを参照してください。

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

cond_reltimedwait の構文

#include <thread.h>

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

cond_reltimedwait の戻り値

cond_reltimedwait() は、正常終了時に 0 を返します。次のいずれかの条件が検出された場合、cond_reltimedwait () は失敗し、対応する値を返します。


EFAULT

説明:

cv が指すアドレスが正しくありません。


ETIME

説明:

reltime で指定された時間を過ぎています。