Я инициализирую цикл в 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);
В соответствии с этим вопросом я должен остановиться, пройти и запуститьпетля, закрывающая все ручки;но это предполагает, что я уже запускаю цикл, а я нет. Я мог бы просто позвонить uv_loop_close(loop)
, но это не освобождает ручки.