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.
David Daney.