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

セマフォの加算

sem_post(3RT)


プロトタイプ:
int	sem_post(sem_t *sem);

#include <semaphore.h>

sem_t sem;
int ret;

ret = sem_post(&sem); /* セマフォを加算する */

sema_post(3THR) は、sem が指すセマフォの値を不可分操作によって 1 増やします。そのセマフォでブロックされているスレッドがある場合は、そのスレッドのうちの 1 つのスレッドがブロック解除されます (Solaris スレッドについては、sema_post(3THR)を参照)。

戻り値

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


EINVAL

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