]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
more peer / peer_digest locking fixes
authorwessels <>
Wed, 16 Dec 1998 07:07:17 +0000 (07:07 +0000)
committerwessels <>
Wed, 16 Dec 1998 07:07:17 +0000 (07:07 +0000)
src/cache_cf.cc
src/neighbors.cc
src/peer_digest.cc

index 12f363a43c03f7be06e97572756b94e32ee28bdc..82d4a8c03d075342aaf54ec7ad52d2a502ee53f0 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cache_cf.cc,v 1.316 1998/12/15 18:22:40 wessels Exp $
+ * $Id: cache_cf.cc,v 1.317 1998/12/16 00:07:17 wessels Exp $
  *
  * DEBUG: section 3     Configuration File Parsing
  * AUTHOR: Harvest Derived
@@ -784,6 +784,11 @@ free_peer(peer ** P)
     peer *p;
     while ((p = *P) != NULL) {
        *P = p->next;
+#if USE_CACHE_DIGESTS
+       if (p->digest)
+           cbdataUnlock(p->digest);
+       p->digest = NULL;
+#endif
        cbdataFree(p);
     }
     Config.npeers = 0;
index 250af098d65225eb40922acd9dfa7c7c739b8345..b26f8b54add017edfc92fae6266f8923af0978c5 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: neighbors.cc,v 1.265 1998/12/15 23:51:19 wessels Exp $
+ * $Id: neighbors.cc,v 1.266 1998/12/16 00:07:19 wessels Exp $
  *
  * DEBUG: section 15    Neighbor Routines
  * AUTHOR: Harvest Derived
@@ -894,9 +894,8 @@ peerDestroy(void *data, int unused)
     }
     safe_free(p->host);
 #if USE_CACHE_DIGESTS
-    if (p->digest)
-       cbdataUnlock(p->digest);
-    p->digest = NULL;
+    /* it should be set NULL in free_peer() */
+    assert(p->digest == NULL);
 #endif
     xfree(p);
 }
index d6259c3ce6cf8e4f0eab260f950d0ad62acfde81..61daefabc51532e9aa3263f4ff15fb39de506d7e 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: peer_digest.cc,v 1.65 1998/12/15 23:51:20 wessels Exp $
+ * $Id: peer_digest.cc,v 1.66 1998/12/16 00:07:20 wessels Exp $
  *
  * DEBUG: section 72    Peer Digest Routines
  * AUTHOR: Alex Rousskov
@@ -659,6 +659,7 @@ peerDigestPDFinish(DigestFetchState * fetch, int pcb_valid, int err)
        else
            debug(72, 2) ("received valid digest from %s\n", host);
     }
+    fetch->pd = NULL;
     cbdataUnlock(pd);
 }
 
@@ -688,6 +689,7 @@ peerDigestFetchFinish(DigestFetchState * fetch, int err)
     requestUnlink(fetch->request);
     fetch->entry = NULL;
     fetch->request = NULL;
+    assert(fetch->pd == NULL);
     cbdataUnlock(fetch);
     cbdataFree(fetch);
 }