Replace use of select() in the I/O manager with epoll/kqueue/etc.
Subject says it all. We've known about this problem for ever, but haven't got around to doing anything about it.
Here is a library that provides a unified API over the various event APIs: http://monkey.org/~provos/libevent/.
See also http://www.kegel.com/c10k.html.
1 week is an estimate for doing it properly on all relevant platforms, by someone who is familiar with the APIs and code.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.4.1 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | libraries/base |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown |
| Architecture | Unknown |