多线程编程指南

增加信号

使用 sem_post(3RT) 可以原子方式增加 sem 所指示的信号。

sem_post 语法

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



sem_t sem;

int ret;



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

如果所有线程均基于信号阻塞,则会对其中一个线程解除阻塞。对于 Solaris 线程,请参见sema_post 语法

sem_post 返回值

sem_post() 在成功完成之后会返回零。其他任何返回值都表示出现了错误。如果出现以下情况,该函数将失败并返回对应的值。


EINVAL

描述:

sem 所指示的地址非法。