RFR : 8205959 : Do not restart close if errno is EINTR
David Lloyd
dlloyd at redhat.com
Wed Jun 27 23:23:40 UTC 2018
According to http://man7.org/linux/man-pages/man2/close.2.html it is currently platform-dependent whether close() must or must not (seems to be no middle ground) be retried. Might have to do some #ifdef guarding?
--
- DML
> On Jun 27, 2018, at 6:15 PM, Ivan Gerasimov <ivan.gerasimov at oracle.com> wrote:
>
> Hello!
>
> When closing a socket via NET_SocketClose(int fd), a close(fd) is called.
> The later is wrapped in a retry-loop, which is wrong because close() is not restartable.
>
> The `man 2 close` states:
> """
> ... close() should not be retried after an EINTR since this may cause a reused descriptor from another thread to be closed.
> """
>
> Would you please help review a trivial fix?
>
> BUGURL: https://bugs.openjdk.java.net/browse/JDK-8205959
> WEBREV: http://cr.openjdk.java.net/~igerasim/8205959/00/webrev/
>
> Thanks in advance!
>
> --
> With kind regards,
> Ivan Gerasimov
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/net-dev/attachments/20180627/07adf407/attachment-0001.html>
More information about the net-dev
mailing list