Motivation The event loop implementations had become somewhat tangled over time and work was done recently to streamline EpollEventLoop. NioEventLoop would benefit from the same treatment and it is more straighforward now that we can follow the same structure as was done for epoll. Modifications Untangle NioEventLoop logic and mirror what's now done in EpollEventLoop w.r.t. the volatile selector wake-up guard and scheduled task deadline handling. Some common refinements to EpollEventLoop have also been included - to use constants for the "special" deadline/wakeup volatile values and to avoid some unnecessary calls to System.nanoTime() on task-only iterations. Result Hopefully cleaner, more efficient and less fragile NIO transport implementation. |
||
---|---|---|
.. | ||
main | ||
test |