我在libuv中初始化一个循环,但是如果我需要在初始化循环之后调用uv_run
之前返回,我如何正确地清理所有内存和文件描述符?下面是我的示例代码,loop
是uv_loop_t*
,server
是uv_tcp_t*
:
if (uv_loop_init(loop) < 0) {
return -1;
}
if (uv_tcp_init(loop, server) < 0) {
// What code here?
return -1;
}
if (some_other_function() < 0) {
// What code here?
return -1;
}
uv_run(loop, UV_RUN_DEFAULT);
根据this question,我应该停止,行走和运行循环,关闭所有的手柄;但那是假设我已经在运行这个循环了,实际上我没有,我可以直接调用uv_loop_close(loop)
,但这不能释放句柄。
1条答案
按热度按时间qpgpyjmq1#
正如链接中提到的,您需要做类似这样的事情;