13#ifndef __xwos_cxx_sync_Sem_hxx__
14#define __xwos_cxx_sync_Sem_hxx__
218 template<xwsz_t TSelNum>
238 template<xwsz_t TSelNum>
254 template<xwsz_t TSelNum>
270 template<xwsz_t TSelNum>
struct xwos_sel * getXwosObj()
获取XWOS对象指针
struct xwos_sem * getXwosObj()
获取XWOS对象指针
xwer_t bind(Sel< TSelNum > *sel, long pos)
绑定信号量对象到信号选择器
xwssq_t max()
获取信号量计数器的最大值
xwer_t wait(enum WaitMode mode=WaitMode::SemWait, xwtm_t to=((xwtm_t)((~(xwu64_t) 0) > > 1)))
等待并获取信号量
struct xwos_sem * mSemPtr
xwer_t unbind(Sel< TSelNum > &sel)
从信号选择器上解绑信号量对象
xwer_t bind(Sel< TSelNum > &sel, long pos)
绑定信号量对象到信号选择器
xwer_t unbind(Sel< TSelNum > *sel)
从信号选择器上解绑信号量对象
xwssq_t value()
获取信号量计数器的值
xws64_t xwtm_t
XWOS系统时间 (有符号)
#define XWTM_MAX
xwtm_t 的最大值
static xwer_t xwos_sem_get_value(struct xwos_sem *sem, xwssq_t *val)
XWOS API:获取信号量对象计数器的值
static xwer_t xwos_sem_get_max(struct xwos_sem *sem, xwssq_t *max)
XWOS API:获取信号量对象计数器的最大值
static xwer_t xwos_sem_trywait(struct xwos_sem *sem)
XWOS API:尝试获取信号量
static xwer_t xwos_sem_bind(struct xwos_sem *sem, struct xwos_sel *sel, xwsq_t pos)
XWOS API:绑定信号量对象到信号选择器
static xwer_t xwos_sem_unbind(struct xwos_sem *sem, struct xwos_sel *sel)
XWOS API:从信号选择器上解绑信号量对象
static xwer_t xwos_sem_wait(struct xwos_sem *sem)
XWOS API:等待并获取信号量
static xwer_t xwos_sem_wait_unintr(struct xwos_sem *sem)
XWOS API:等待并获取信号量,且等待不可被中断
static xwer_t xwos_sem_freeze(struct xwos_sem *sem)
XWOS API:冻结信号量对象
static xwer_t xwos_sem_wait_to(struct xwos_sem *sem, xwtm_t to)
XWOS API:限时等待并获取信号量
static xwer_t xwos_sem_thaw(struct xwos_sem *sem)
XWOS API:解冻信号量对象
static xwer_t xwos_sem_post(struct xwos_sem *sem)
XWOS API:发布信号量