Libuv api не является потокобезопасным, но uv_async_send.
, как и следующие коды, 'uv_idle_stop' не должен вызываться в другом потоке?
auto loop = uv_default_loop();
uv_idle_t idle;
uv_idle_init(loop, &idle);
uv_idle_start(&idle, _DoIdleWork);
std::thread th([&]() {
std::this_thread::sleep_for(std::chrono::seconds(2));
// this should use uv_async_send ?
uv_idle_stop(&idle);
});
uv_run(loop, UV_RUN_DEFAULT);
th.join();