8206145 : dbgsysSocketClose - do not restart close if errno is EINTR [linux] - was : RE: RFR : 8205959 : Do not restart close if errno is EINTR

Baesken, Matthias matthias.baesken at sap.com
Wed Jul 4 11:37:44 UTC 2018


Hi all,  here is another  webrev :

http://cr.openjdk.java.net/~mbaesken/webrevs/8206145.2/

- switched to  the coding proposed by Thomas
- added a small comment



Best regards, Matthias


> -----Original Message-----
> From: David Holmes [mailto:david.holmes at oracle.com]
> Sent: Dienstag, 3. Juli 2018 23:26
> To: Alan Bateman <Alan.Bateman at oracle.com>; Thomas Stüfe
> <thomas.stuefe at gmail.com>
> Cc: Baesken, Matthias <matthias.baesken at sap.com>; serviceability-dev
> (serviceability-dev at openjdk.java.net) <serviceability-
> dev at openjdk.java.net>
> Subject: Re: 8206145 : dbgsysSocketClose - do not restart close if errno is
> EINTR [linux] - was : RE: RFR : 8205959 : Do not restart close if errno is EINTR
> 
> On 4/07/2018 3:14 AM, Alan Bateman wrote:
> > On 03/07/2018 18:07, Thomas Stüfe wrote:
> >> :
> >> Actually, at this point we could just:
> >>
> >> #if defined(__AIX)
> >>       do {
> >>           rv = close(fd);
> >>       } while (rv == -1 && errno == EINTR);
> >> #else
> >>      rv = close(fd);
> >> #endif
> > Right, might be the simplest.
> 
> +1 with suitable comment
> 
> >>
> >> But boy this close() EINTR business is evil. Choosing between risking
> >> file descriptor leaks or random double closes ...
> 
> Hopefully it's somewhat academic and we don't actually take signals in
> arbitrary threads.
> 
> Cheers,
> David
> 
> >>
> > and we aren't out of the woods yet, there are a few other places that
> > need similar attention.


More information about the serviceability-dev mailing list