6979009: (fc) FileChannel.read() fails to throw ClosedByInterruptException

Alan Bateman Alan.Bateman at oracle.com
Tue Nov 9 08:33:30 PST 2010

Chris Hegarty wrote:
> :
> It seems unnecessary (but not wrong) to pass the current thread to the 
> interruptor in AbstractSelector, null would be sufficient.
Yes, null would do too but it really doesn't matter because it's not 
used for this case.

> Would it be overkill/wrong to have a list of interrupted threads? 
> Instead of just the last interrupted thread getting 
> ClosedByInterruptException.
It's only possible to close the channel once and only one thread should 
throw ClosedByInterruptException. If several threads doing I/O on the 
same channel are interrupted at around the same time then first thread, 
calling Thread.interrupt, to acquite clockLock will set the victim and 
it's that thread that will throw ClosedByInterruptException. To the 
other threads its just like an asynchronous close, irrespective of if 
they have been interrupted too.


More information about the nio-dev mailing list