多线程编程指南

增加信号

使用 sema_post(3C) 可以原子方式增加 sp 所指向的信号。如果多个线程基于该信号阻塞,则系统会解除阻塞其中一个线程。

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