]> granicus.if.org Git - postgresql/commitdiff
Here the fix for the first assertion failure I had which killed
authorMarc G. Fournier <scrappy@hub.org>
Fri, 4 Oct 1996 20:32:07 +0000 (20:32 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Fri, 4 Oct 1996 20:32:07 +0000 (20:32 +0000)
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>

src/backend/postmaster/postmaster.c

index 55c7fe8109c5d5e1fb602f0b8daaf900179f0e05..976eb242a19df521a66eb14f18d5b61b5c0a09c3 100644 (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);
        }