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.