uv_async_t --- 异步句柄

异步句柄允许用户 "唤醒" 事件循环并且从另一个线程调用回调函数。

数据类型

uv_async_t

异步句柄类型。

void (*uv_async_cb)(uv_async_t* handle)

传递给 uv_async_init() 的回调函数的类型定义。

公共成员

N/A

参见

uv_handle_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函数也适用。