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

セマフォーの減算

カウントが 0 より大きくなったとき、sp が指すセマフォー内のカウントを不可分的に減算するには、sema_trywait(3C) を使用します。この関数はブロックしない点を除いて、sema_wait() と同じ働きをします。

sema_trywait の構文

#include <thread.h>

int sema_trywait(sema_t *sp);

sema_trywait の戻り値

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


EINVAL

説明:

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


EBUSY

説明:

sp が指すセマフォーのカウントが 0 です。