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

Thomas Stüfe thomas.stuefe at gmail.com
Tue Jul 3 17:07:28 UTC 2018


On Tue, Jul 3, 2018 at 6:49 PM, Alan Bateman <Alan.Bateman at oracle.com> wrote:
>
>
> On 03/07/2018 14:57, Baesken, Matthias wrote:
>>>>>
>>>>> I created a bug  and a webrev  , please review .
>>>>>
>>>>>
>>>>> https://bugs.openjdk.java.net/browse/JDK-8206145
>>>>>
>>>>> http://cr.openjdk.java.net/~mbaesken/webrevs/8206145/
>>
>>
>> Hello, here is  the second webrev  including Solaris  :
>>
>> http://cr.openjdk.java.net/~mbaesken/webrevs/8206145.1/
>>
> This looks okay to me (although I think we should include macOS in the list
> too).
>
> -Alan

+1

Actually, at this point we could just:

#if defined(__AIX)
     do {
         rv = close(fd);
     } while (rv == -1 && errno == EINTR);
#else
    rv = close(fd);
#endif

But boy this close() EINTR business is evil. Choosing between risking
file descriptor leaks or random double closes ...

..Thomas


More information about the serviceability-dev mailing list