ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev.pod
(Generate patch)

Comparing libev/ev.pod (file contents):
Revision 1.336 by root, Mon Oct 25 11:10:10 2010 UTC vs.
Revision 1.337 by root, Sun Oct 31 20:20:20 2010 UTC

463epoll scales either O(1) or O(active_fds). 463epoll scales either O(1) or O(active_fds).
464 464
465The epoll mechanism deserves honorable mention as the most misdesigned 465The epoll mechanism deserves honorable mention as the most misdesigned
466of the more advanced event mechanisms: mere annoyances include silently 466of the more advanced event mechanisms: mere annoyances include silently
467dropping file descriptors, requiring a system call per change per file 467dropping file descriptors, requiring a system call per change per file
468descriptor (and unnecessary guessing of parameters), problems with dup and 468descriptor (and unnecessary guessing of parameters), problems with dup,
469returning before the timeout value requiring additional iterations and so
469so on. The biggest issue is fork races, however - if a program forks then 470on. The biggest issue is fork races, however - if a program forks then
470I<both> parent and child process have to recreate the epoll set, which can 471I<both> parent and child process have to recreate the epoll set, which can
471take considerable time (one syscall per file descriptor) and is of course 472take considerable time (one syscall per file descriptor) and is of course
472hard to detect. 473hard to detect.
473 474
474Epoll is also notoriously buggy - embedding epoll fds I<should> work, but 475Epoll is also notoriously buggy - embedding epoll fds I<should> work, but

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines