EINTR return from connect() should be treated exactly the same as

EINPROGRESS, according to Florian Hars.  I'm not completely convinced
but the spec does seem to read that way.
This commit is contained in:
Tom Lane 2005-08-11 22:53:41 +00:00
parent d90c531188
commit 8e9c52e427
1 changed files with 2 additions and 5 deletions

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.316 2005/08/09 05:14:26 momjian Exp $
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.317 2005/08/11 22:53:41 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -1082,15 +1082,12 @@ keep_going: /* We will come back to here until there
* since we are in nonblock mode. If it does, well,
* too bad.
*/
retry_connect:
if (connect(conn->sock, addr_cur->ai_addr,
addr_cur->ai_addrlen) < 0)
{
if (SOCK_ERRNO == EINTR)
/* Interrupted system call - just try again */
goto retry_connect;
if (SOCK_ERRNO == EINPROGRESS ||
SOCK_ERRNO == EWOULDBLOCK ||
SOCK_ERRNO == EINTR ||
SOCK_ERRNO == 0)
{
/*