Well epoll isn't that high level, libuv has a bit of magic for mapping it to the callback.