$ grep -r "EPOLLET" ./
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET;
$ grep -r "EPOLLIN" ./
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET;
./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET;
./boost/asio/detail/impl/epoll_reactor.ipp: static const int flag[max_ops] = { EPOLLIN, EPOLLOUT, EPOLLPRI };
So boost uses edge-triggered manner of epoll
And I learned a little of the purpose of ipp. Boost developpers are template gurus!
Thank you very much.
Sincerely
Journeyer