Peter Eisentraut <peter_e@gmx.net> writes:
> Libpq certainly does deal with system calls being interrupted: It does
> not allow them to be interrupted. Take a look into the file pqsignal.c to
> see why.
??? Are you momentarily confusing backend and frontend libpq?
AFAICT the client-side libpq doesn't (and shouldn't) touch signal
handling at all, except for a couple of places in the print routines
that temporarily block SIGPIPE.
Since we deal happily with EINTR for most of the frontend socket calls,
I don't see a reason not to cope with it for connect() too. I am
somewhat concerned about what exactly it means for a non-blocking
connect, however. Maybe it doesn't mean anything, and we could treat
it the same as EINPROGRESS.
regards, tom lane