Module xwos.sync.sel
XWLUA模块:信号选择器
信号选择器类似于事件标志,使用位图来管理一组 同步对象 。使得单一线程可以同时等待一组不同的 同步对象 。
每个 同步对象 在信号选择器位图中都绑定一个特定的 位 , 当这些 同步对象 发送 选择信号 时,信号选择器位图中特定的 位 被设置,同时使得等待信号选择器的线程被唤醒。
选择信号
选择信号 对于不同的 同步对象 有不同解释:
信号量
指发布操作 semsp:post() ;
条件量
指广播操作 condsp:broadcast() ,单播 condsp:unicast() 不会向信号选择器发送 选择信号 ;
事件标志
指事件标志位图中任何一位发生改变:
线程栅栏
指所有线程抵达同步点,并调用 brsp:wait() 或 brsp:wait_to() ;
信号选择器
信号选择器本身也是 同步对象 ,也可绑定在另一个信号选择器上。当源信号选择器收到了 选择信号 ,会将其传递到绑定的另一个目的信号选择器上。
Functions
new (num) | 新建信号选择器 |
Functions
- new (num)
-
新建信号选择器
Parameters:
- num number (in) 信号槽的数量
Returns:
-
userdata
新的信号选择器对象的强指针 selsp
Usage:
sel = xwos.sel.new(32) -- 创建拥有32个槽的信号选择器