Hi all,
A while ago, I have raised the issue of the interruptibility of
the connect() function.
We decided that a "restartable" connect() if interrupted by a signal
is the best solution.
I must apologize that I should have looked this up more carefully.
According to this document here (IEEE Std 1003.1-2001):
http://www.opengroup.org/onlinepubs/007904975/functions/connect.html
"If connect() is interrupted by a signal that is caught while blocked
waiting to establish a connection, connect() shall fail and set errno to
[EINTR], but the connection request shall not be aborted, and the
connection shall be established asynchronously."
so we must return -EINTR in the kernel.
Alexey, will you finally agree that we need to change this? :-)
(Yes, that sucks ... but ...)
-- G.
|