Является ли epoll поточно-безопасным?

В epoll есть две функции:

  1. epoll_ctl
  2. epoll_wait

Являются ли они streamобезопасными, когда я использую тот же epoll_fd?
Что произойдет, если один stream вызовет epoll_wait, а другие вызовет epoll_ctl в одно и то же время?

    Это streamобезопасно, но документации не так много, что явно указано, что – см. http://linux.derkeiler.com/Mailing-Lists/Kernel/2006-03/msg00084.html

    Кстати, вы можете также иметь несколько streamов, ожидающих одного epoll_fd, но в этом случае он может немного запутаться (т. Е. Вы можете использовать режим с красным (EPOLLET) или onehot (EPOLLONESHOT) – см. Http: // linux .die.net / man / 2 / epoll_ctl )