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