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

セマフォーの加算

sem が指すセマフォーを不可分的に加算するには、sem_post(3RT) を使用します。

sem_post の構文

int sem_post(sem_t *sem);
#include <semaphore.h>

sem_t sem;
int ret;

ret = sem_post(&sem); /* semaphore is posted */

そのセマフォーでブロックされているスレッドがある場合は、そのスレッドのうちの 1 つのスレッドがブロック解除されます

sem_post の戻り値

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


EINVAL

説明:

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