java nio channel selectors can use kqueue/kevent

Greg Lewis glewis at eyesbeyond.com
Tue Aug 3 07:26:59 UTC 2010


G'day David,

On Mon, Aug 02, 2010 at 05:27:47PM +0800, David Xu wrote:
> I was suprised the java uses poll() on freebsd for its nio, while
> others are using devpoll() or epoll(). I have spent one week to
> work out a patch, and let it work with kqueue. I have tried to make
> it better, but because the java nio selector are poll() centric
> so something in the patch is not very perfect.

Thanks so much for doing this!  I'll try and get it into the jdk16 port
as soon as possible.  Are you willing for this change to also go into the
OpenJDK ports?  Or, more particularly, are you willing to contribute it
to the main OpenJDK repo?  Unfortunately that will require some paper
work.

> Here is the patch:
> http://people.freebsd.org/~davidxu/patch/jdk16_nio_kqueue.patch
> 
> just cd into /usr/ports/jdk16, and type following commands:
> 
> make extract
> make patch
> cd work
> patch < this_patch_file
> cd ..
> make install
> 
> note that the patch does not make kqueue method as default provider,
> you should specify it on comand line like following:
> 
> java 
> -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.KqueueSelectorProvider 
> <application class>
> 
> 
> Regards,
> David Xu
> 
> _______________________________________________
> freebsd-java at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-java
> To unsubscribe, send any mail to "freebsd-java-unsubscribe at freebsd.org"

-- 
Greg Lewis                          Email   : glewis at eyesbeyond.com
Eyes Beyond                         Web     : http://www.eyesbeyond.com
Information Technology              FreeBSD : glewis at FreeBSD.org


More information about the freebsd-java mailing list