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

間隔指定のブロック

pthread_cond_reltimedwait_np(3C) の使用方法は、1 点を除いて、pthread_cond_timedwait() の使用方法と同じです。 pthread_cond_reltimedwait_np() の場合は、最後の引数として、未来の絶対日時ではなく相対時間間隔を指定します。

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 の戻り値

pthread_cond_reltimedwait_np() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、次の値を戻します。


EINVAL

説明:

reltime で指定された値が無効です。


ETIMEDOUT

説明:

reltime に指定されている時間間隔が経過しました。