このエントリーは社内勉強会用の解説記事です。 普通の人は便利な libev や libuv を使っておきましょう。 epoll はいわゆる C10K 問題に対応するための Linux カーネルが提供する仕組みです。といってもこの問題、32bit 時代のメモリが潤沢ではなかった時代のものなので、いまどき並大抵のプログラムであれば、普通に1コネクション1スレッドで問題ないでしょう。@kazuho 先生がそうおっしゃっていました。 まあ御託はさておいて、epoll のマニュアル読んでもちょいわからないところを補足しておきます。 レベルトリガーとエッジトリガー マニュアルに書いてありますが、簡単に言うとレベルトリガーは指定した状態が満たされるかチェックする方式です。つまりソケットの受信バッファにデータがあれば、epoll_wait を何度呼び出しても必ず read ready が返ってきます。 エ