From 4feb696be732ea07027f964974547b3976f25ed5 Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" Date: Fri, 4 Oct 1996 20:32:07 +0000 Subject: [PATCH] Here the fix for the first assertion failure I had which killed my postmaster 1.07. It's really simple, the loop dealing with all sockets can't handle more than one ready socket :-) A simple logic error dealing with lists. OR IS THERE ANY REASON FOR SETTING curr TO 0? Submitted by: Carsten Heyl --- src/backend/postmaster/postmaster.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 55c7fe8109..976eb242a1 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.9 1996/10/04 20:16:18 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.10 1996/10/04 20:32:07 scrappy Exp $ * * NOTES * @@ -404,7 +404,7 @@ ServerLoop(void) int serverFd = ServerSock; fd_set rmask, basemask; int nSockets, nSelected, status, newFd; - Dlelem *prev, *curr; + Dlelem *next, *curr; /* int orgsigmask = sigblock(0); */ sigset_t oldsigmask, newsigmask; @@ -541,10 +541,11 @@ ServerLoop(void) } FD_CLR(port->sock, &basemask); StreamClose(port->sock); - prev = DLGetPred(curr); + next = DLGetPred(curr); DLRemove(curr); DLFreeElem(curr); - curr = 0; + curr = next; + continue; } curr = DLGetSucc(curr); }