Thomas Fitzsimmons wrote:
> Hi,
> 
> Casey Marshall wrote:
>> I've updated my patch that updates IO, net, and NIO to better support
>> non-blocking IO, which also includes my kqueue Selector, and the
>> implementation of NetworkInterface. Along with implementing real
>> non-blocking IO, I've rewritten parts of the IO and net code to use the
>> NIO implementation, reducing the amount of code use. I've also tried to
>> make the JNI code as simple as possible, and to abstract out as much of
>> this native code logic into the VM interface classes (IOW, the native
>> logic is private instance data of our VM interface reference
>> implementation).
>>
>> I only get a few Mauve failures with this patch; most of them look like
>> my tree is just out of date (serialization, URL and InetAddress, none of
>> which I've changed here). Mauve may not be testing everything, though,
>> so it's likely that there are bugs lurking here.
>>
>> The patches are big, so I'll just link to them here:
>>
>>   <http://metastatic.org/source/io-nio.patch>
>>   <http://metastatic.org/source/io-nio2.patch>
>>
>> I haven't cleaned everything up, yet, so there are still some obsolete
>> files that aren't removed yet, and I haven't addressed SIGPIPE at all.
>> I've only tested this so far on Darwin/x86, but I'll try this on
>> Linux/x86 too.
>>
>> Comments appreciated! Especially on whether or not this is good enough
>> to commit, or what's lacking.
> 
> I get these errors after applying io-nio.patch then io-nio2.patch,
> re-running autogen.sh, and doing a clean build:
> 
> 2. ERROR in
> /home/fitzsim/workspace/classpath/gnu/java/nio/channels/FileChannelImpl.java
> 

Whoops, yeah, I moved FileChannelImpl.java from gnu/java/nio/channels
(it was the only class in that package) to gnu/java/nio; the patch
probably doesn't reflect that.

I thought I had it marked for delete locally...

> [...]
>
> ----------
> 6. ERROR in
> /home/fitzsim/workspace/classpath/gnu/java/nio/KqueueSelectorImpl.java
>  (at line 267)
>         protected KqueueSelectionKeyImpl
> register(AbstractSelectableChannel channel,
>                                             int interestOps,
>                                             Object attachment)
> 
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> The return type is incompatible with
> AbstractSelector.register(AbstractSelectableChannel, int, Object)
> 

Again, oops :-). Eclipse was using 1.5 semantics, I guess, where you can
return a derived type instead of the declared type in a overridden method.

The return type for that method should be 'SelectionKey.'

> I'm testing these patches to see if they fix the RMI problem I'm having
> (which may be unrelated):
> 
> $ rmiregistry 3456 &
> $ java -Djava.security.policy=/home/fitzsim/jin.patches/wideopen.policy
> examples.hello.HelloImpl
> java.net.SocketTimeoutException: Accept operation timed out
> [...]
> Were you aware of this problem?  I think it was introduced by Mark's
> native layer merge.
> 

I wasn't aware of that problem, no. Since this patch rewrites accept()
pretty much from scratch, then yeah, it may work in my version.

Reply via email to