8199791: (se) More Selector cleanup
Alan.Bateman at oracle.com
Tue Mar 20 13:47:53 UTC 2018
This is another batch of cleanup to the Selector implementations.
A significant part of the cleanup is changing the epoll and kqueue based
Selector implementations to use the EPoll and KQueue support classes.
This eliminate their wrapper classes and several native methods. The
result is much smaller implementations. The queuing of changes to the
interest set has also been re-worked to avoid needing cancellation
needing to kill all pending updates. A few of the Selector
implementations had a native method to write a byte to one end of the
pipe used for the wakeup mechanism. This has been changed to use
IOUtil.write1 instead. Interrupting timed polls (as in EINTR, not Thread
interrupt) wasn't handled correctly in some of the implementations so
that has been re-worked.
The webrev with the changes is here:
I have several other changes for this area but I'd prefer to do the
changes in small batches to avoid changing too much in one go. Small
patches are easier to review too of course (and in this case, there is
more deletion than new code).
I have run all tests on all platforms several times.
More information about the nio-dev