From cf4cc7843c17db5142a12edddb1bd17b33ea72d8 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 13 Feb 2007 19:18:54 +0000 Subject: Improve postmaster's behavior if an accept() call fails. Because the server socket is still read-ready, the code was a tight loop, wasting lots of CPU. We can't do anything to clear the failure, other than wait, but we should give other processes more chance to finish and release FDs; so insert a small sleep. Also, avoid bogus "close(-1)" in this case. Per report from Jim Nasby. --- src/backend/postmaster/postmaster.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/backend/postmaster/postmaster.c') diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 2c54ad7010e..d0fe8451987 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.520 2007/02/11 11:59:25 mha Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.521 2007/02/13 19:18:54 tgl Exp $ * * NOTES * @@ -1710,7 +1710,8 @@ ConnCreate(int serverFd) if (StreamConnection(serverFd, port) != STATUS_OK) { - StreamClose(port->sock); + if (port->sock >= 0) + StreamClose(port->sock); ConnFree(port); port = NULL; } -- cgit v1.2.3