4 ms·
How does it work? It's not obvious how epoll could be built on top of IOCP.
by rumcajz 9y ago
How does it work? It's not obvious how epoll could be built on top of IOCP.
- piscisaureus 9y agoIt uses an ioctl that boils down to 'an overlapped version of poll()'. So the call doesn't block - instead when an event like POLLIN or POLLOUT happens, a completion is posted to the completion port. Call this overlapped-poll function on every monitored socket individually so you don't inherit poll()s scalability problems. See https://github.com/piscisaureus/wepoll/blob/437fb2f24ce197b47f5fb1100aa397e73e1872e1/src/afd.c#L20-L88 https://github.com/piscisaureus/wepoll/blob/437fb2f24ce197b4... This is as much of an explanation I can type on my phone - I'll add more detail to the wepoll readme later.