これは質問 14221339 の続きです。
epoll_wait()ループ内で実行されているスレッド プールがあります。
外部スレッドはepoll_ctl()、リスナーソケットを呼び出して追加します
(EPOLLET | EPOLLONESHOT | EPOLLIN).
スレッド プールに 1 つのスレッドしかない場合EPOLLIN、最初の (そして唯一の) 接続試行のイベントの受信に断続的に失敗します。スレッド プールを 2 つに増やすと、ほとんどの場合、EPOLLINイベントの受信に失敗します。
私の理解では、epoll API はスレッドセーフですが、この観察結果はそうでないことを示しているようです。