多线程编程指南

减小信号计数

使用 sema_trywait(3C) 可以在计数大于零时,以原子方式减小 sp 所指向的信号的计数。此函数是 sema_wait() 的非阻塞版本。

sema_trywait 语法

#include <thread.h>



int sema_trywait(sema_t *sp);

sema_trywait 返回值

sema_trywait() 在成功运行后返回 0。如果检测到以下任一情况,sema_trywait() 将失败并返回对应的值。


EINVAL

描述:

sp 指向的信号无效。


EBUSY

描述:

sp 所指向的信号的计数为零。