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 <Heyl@nads.de>
This commit is contained in:
Marc G. Fournier 1996-10-04 20:32:07 +00:00
parent 002be14c45
commit 4feb696be7
1 changed files with 5 additions and 4 deletions

View File

@ -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);
}