Roman Kennke writes: > Hi again, > > Am Montag, den 04.12.2006, 11:19 -0800 schrieb David Daney: > > Andrew Haley wrote: > > > Roman Kennke writes: > > > > > While testing eclipse I sometimes saw interrupted reads occur. > > > VMChannel > > > > > already had a mechanism for checking the interrupted status of a > > > thread > > > > > when a system call returned early. But this wasn't used for the > > > read() > > > > > and write() methods. This patch adds the logic. And makes my eclipse > > > > > happy again :) > > > > > > > > I am seeing a (possibly) related issue still: > > > > > > > > java.net.SocketException: Interrupted system call > > > > > > If connect(2) returns EINTR, you should retry: > > > > > > CPNIO_EXPORT int > > > cpnio_connect (int fd, const struct sockaddr *addr, socklen_t addrlen) > > > { > > > int retcode; > > > do > > > { > > > retcode = connect (fd, addr, addrlen); > > > } > > > while (retcode == EINTR); > > > return retcode; > > > } > > > > Except that you should probably also check if the thread was interrupted > > as the original patch does for read and write. > > I did it like that and it solved all my problems :-)
But surely you have the same problem with any other callers of cpio_connect, or indeed cpio_*. You only fixed the bug in one place. Andrew.