使用 sema_post(3C) 可以原子方式增加 sp 所指向的信号。如果多个线程基于该信号阻塞,则系统会解除阻塞其中一个线程。
#include <thread.h> int sema_post(sema_t *sp);
sema_post() 在成功运行后返回 0。如果检测到以下任一情况,sema_post() 将失败并返回对应的值。
EINVAL
描述:sp 引用的信号无效。
EFAULT
描述:sp 指向的地址非法。
EOVERFLOW
描述:sp 指向的信号值超过了 SEM_VALUE_MAX。