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();