uv_async_t
--- 异步句柄¶
异步句柄允许用户 "唤醒" 事件循环并且从另一个线程调用回调函数。
API¶
-
int
uv_async_init
(uv_loop_t* loop, uv_async_t* async, uv_async_cb async_cb)¶ 初始化句柄。 允许回调函数为NULL。
返回: 0 当成功时,或者一个 < 0 的错误代码当失败时。 注解
不同于其他句柄初始化函数,句柄立刻开始。
-
int
uv_async_send
(uv_async_t* async)¶ 唤醒事件循环并且调用异步句柄的回调函数。
返回: 0 当成功时,或者一个 < 0 的错误代码当失败时。 注解
从任何线程调用这个函数都是安全的。 回调函数将从循环的线程上被调用。
警告
libuv将会合并对
uv_async_send()
的调用,那就是说,不是对它的每个调用会 yield 回调函数的执行。 例如:如果在回调函数被调用前一连调用uv_async_send()
5 次,回调函数将只会调用一次。 如果在回调函数被调用后再次调用uv_async_send()
,回调函数将会再次被调用。
参见
uv_handle_t
的API函数也适用。