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

セマフォーの値によるブロック

sp が指すセマフォー内のカウントが 0 より大きくなるまで呼び出しスレッドをブロックするには、sema_wait(3C) を使用します。カウントが 0 より大きくなると、不可分的に減算します。

sema_wait の構文

#include <thread.h>

int sema_wait(sema_t *sp);

sema_wait の戻り値

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


EINVAL

説明:

sp が無効なセマフォーを参照しています。


EINTR

説明:

シグナルにより、待機中に割り込みが発生しました。