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:
parent
002be14c45
commit
4feb696be7
|
@ -10,7 +10,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* NOTES
|
||||||
*
|
*
|
||||||
|
@ -404,7 +404,7 @@ ServerLoop(void)
|
||||||
int serverFd = ServerSock;
|
int serverFd = ServerSock;
|
||||||
fd_set rmask, basemask;
|
fd_set rmask, basemask;
|
||||||
int nSockets, nSelected, status, newFd;
|
int nSockets, nSelected, status, newFd;
|
||||||
Dlelem *prev, *curr;
|
Dlelem *next, *curr;
|
||||||
/* int orgsigmask = sigblock(0); */
|
/* int orgsigmask = sigblock(0); */
|
||||||
sigset_t oldsigmask, newsigmask;
|
sigset_t oldsigmask, newsigmask;
|
||||||
|
|
||||||
|
@ -541,10 +541,11 @@ ServerLoop(void)
|
||||||
}
|
}
|
||||||
FD_CLR(port->sock, &basemask);
|
FD_CLR(port->sock, &basemask);
|
||||||
StreamClose(port->sock);
|
StreamClose(port->sock);
|
||||||
prev = DLGetPred(curr);
|
next = DLGetPred(curr);
|
||||||
DLRemove(curr);
|
DLRemove(curr);
|
||||||
DLFreeElem(curr);
|
DLFreeElem(curr);
|
||||||
curr = 0;
|
curr = next;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
curr = DLGetSucc(curr);
|
curr = DLGetSucc(curr);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue