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

セマフォーの加算

sp が指すセマフォーを不可分的に加算するには、sema_post(3C) を使用します。そのセマフォーでブロックされているスレッドがある場合は、そのスレッドのうちの 1 つのスレッドがブロック解除されます。

sema_post の構文

#include <thread.h>

int sema_post(sema_t *sp);

sema_post の戻り値

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


EINVAL

説明:

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


EFAULT

説明:

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


EOVERFLOW

説明:

sp が指すセマフォーの値が SEM_VALUE_MAX を超えています。