epoll
ファイルディスクリプタを見に行くときの計算量が$ O(1) なのでパフォーマンスが良い
ファイルディスクリプタの監視をカーネル空間で行っているため
epollのサンプル実装はGeekなページのやつが参考になる
sys/epoll.hを使う
使用できる関数
table:sys/epoll.h
関数
epoll_wait(2)
epoll_create(2) 2.6
epoll_create1(2) 2.6.27
epoll_ctl(2) 2.6
epoll_pwait(2) 2.6.19
epoll_pwait2(2) 5.11
code:memo.c
int epoll_create(int size)
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);
int epoll_pwait(int epfd, struct epoll_event *events, int maxevents, int timeout, const sigset_t *sigmask);
関連するカーネルパラメータ
/proc/sys/fs/epoll/max_user_watches
関連
確認用
Q. epoll
参考
メモ
read, writeはストリームに書くシステムコール
TCPでストリームを作り接続するためのシステムコールがscoket(2), connect(2), bind(2), listen(2), accept(2)