sp が指すセマフォーを不可分的に加算するには、sema_post(3C) を使用します。そのセマフォーでブロックされているスレッドがある場合は、そのスレッドのうちの 1 つのスレッドがブロック解除されます。
#include <thread.h> int sema_post(sema_t *sp);
sema_post() は、正常終了時に 0 を返します。次のいずれかの条件が検出された場合、sema_post() は失敗し、対応する値を返します。
EINVAL
説明:sp が無効なセマフォーを参照しています。
EFAULT
説明:sp が指すアドレスが正しくありません。
EOVERFLOW
説明:sp が指すセマフォーの値が SEM_VALUE_MAX を超えています。