0
私は少しについてepoll
、その後、いくつかの書類を確認した後、それは次のように実行さだと思う知っている:epollを使ってハンドラ関数を非ブロック化するには?
while(true){
epoll_wait(some_sock_fds);
foreach(usable_fds){
handler(one_fd); <----- this function must be non-blocking ?
}
}
handler
機能では、ネットワークについての何かがあるはず/書き込みやファイル操作を読んで、私はそれが非されるべきだと思いますブロッキング、はい?
handler
関数をメインループをブロックしないように書くにはどうすればよいですか?
これはブロックしている可能性があります。epollが待機し、ブロックされないfdsのみを提供するため、ハンドラはブロックされないことが保証されます。 –
'foreach'ループの@RomanHockeは、最初の' fd'を処理するには5秒、2番目の 'fd'は5秒待つ必要がありますか? – user1418404
"最初のfdを処理するには5秒かかります"最初のfdのデータは準備ができており、epollによって保証されています。 –