Могут ли многопоточности вызывать uv_run? - PullRequest
0 голосов
/ 24 января 2019

Поскольку мы знаем, что запуск io_service может вызываться во многих потоках, например:

boost::asio::io_service ss;
    std::thread th1([&]() {
        ss.run();
    });
    std::thread th2([&]() {
        ss.run();
    });

Для uv_run, можем ли мы сделать это как io_service?

auto loop = uv_default_loop();
    std::thread th1([=]() {
        uv_run(loop, UV_RUN_DEFAULT);
    });
    std::thread th2([=]() {
        uv_run(loop, UV_RUN_DEFAULT);
    });

Похоже, что uv_run не заблокирован и вызовет ли проблема различных проблем обработать одни и те же события fd?Например:

tcp fd 42

thread1, обрабатывающий событие чтения

thread2, отправляющий событие чтения тоже

...