8206145 : dbgsysSocketClose - do not restart close if errno is EINTR [linux] - was : RE: RFR : 8205959 : Do not restart close if errno is EINTR
David Holmes
david.holmes at oracle.com
Tue Jul 3 21:26:13 UTC 2018
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