go__cache/docs/event_handling.md

23 lines
1.2 KiB
Markdown

# Event handling
* Golang runtime uses `epoll`/`kqueue`/IOCP so no need for `libevent` or similar.
* See https://golang.org/search?q=netpoll#Global
## Existing techniques
For reference only, since using Go means we gain automatic integration.
From http://nginx.org/en/docs/events.html
| Method | Linux | macOS | Windows | BSD | UNIX | Notes |
|-----------|:-----:|:-----:|:-------:|:---:|:---------------:|:---------------------------------|
| select | X | X | X | X | X | Least efficient, widest support |
| poll | X | X | | X | X | Low efficiency, wide support |
| kqueue | | X, Go | | X | Go | Efficient |
| epoll | Go | | | | | Efficient |
| /dev/poll | | | | | X | Efficient |
| eventport | | | | | Solaris 10+, Go | Problems, use /dev/poll instead |
| IOCP | | | X, Go | | | Recommended for Windows |
* UNIX: Solaris, HP-UX, IRIX, Tru64