地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Linux】EPOLLEXCLUSIVEのメモ

概要

epoll(2)のオプションのEPOLLEXCLUSIVEについて気になったので調べたメモ

EPOLLEXCLUSIVEとは

       EPOLLEXCLUSIVE (since Linux 4.5)
              Sets an exclusive wakeup mode for the epoll file
              descriptor that is being attached to the target file
              descriptor, fd.  When a wakeup event occurs and multiple
              epoll file descriptors are attached to the same target
              file using EPOLLEXCLUSIVE, one or more of the epoll file
              descriptors will receive an event with epoll_wait(2).  The
              default in this scenario (when EPOLLEXCLUSIVE is not set)
              is for all epoll file descriptors to receive an event.
              EPOLLEXCLUSIVE is thus useful for avoiding thundering herd
              problems in certain scenarios.

epoll_ctl(2) - Linux manual page

ざっくりいうとepoll_waitで複数プロセスがlistenを待っているケースでこれまでは全てのプロセスに対して通知を行なっていたのを1つ以上のプロセスに制限するというものらしい

dsas.blog.klab.org