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.gerasi...@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 >