This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Unblocking blocked I/O


>>>>> "Bryce" == Bryce McKinlay <bryce@waitaki.otago.ac.nz> writes:

Bryce> 	* java/io/natFileDescriptorPosix.cc (write (jint)): Check for thread 
Bryce> 	interrupted status flag only if ::write returned an error.

My understanding is that write(2) can return a short (not -1) count
when interrupted.  From the glibc manual:

    `EINTR'
          The `write' operation was interrupted by a signal while it was
          blocked waiting for completion.  A signal will not necessary
          cause `write' to return `EINTR'; it may instead result in a
          successful `write' which writes fewer bytes than requested.

This is why the code used to check for the interrupt unconditionally.
I think this part of the change should be reverted.

Thanks,
Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]