uv_prepare_init
не устарел.
См. файл loop-watcher.c
для получения дополнительной информации. Он доступен как для Unix (libuv/src/unix
), так и для Windows (libuv/src/win
).
Так в чем магия?
Как получается, что определения нет, а функция является частью библиотеки?
Макросы. Это все. Определение есть, хотя и немного запутанное.
Существует макрос с именем UV_LOOP_WATCHER_DEFINE
, часть которого следует:
#define UV_LOOP_WATCHER_DEFINE(name, type) \
int uv_##name##_init(uv_loop_t* loop, uv_##name##_t* handle) { \
uv__handle_init(loop, (uv_handle_t*)handle, UV_##type); \
handle->name##_cb = NULL; \
return 0; \
} \
// ... continue ...
Сразу после определения используется макрос< /а> как:
UV_LOOP_WATCHER_DEFINE(prepare, PREPARE)
Вы можете легко сделать замену для себя и обнаружить, что она на самом деле определяет uv_prepare_init
.
Поэтому можно сказать, что функция является частью библиотеки, она не устарела (по крайней мере, в v1.x
) и вы можете свободно использовать ее в своих целях.
Нет необходимости заменять ее в так или иначе.
person
skypjack
schedule
27.06.2017