r3614 - branches/2.0/varnish-cache/bin/varnishd

tfheen at projects.linpro.no tfheen at projects.linpro.no
Thu Feb 5 12:35:20 CET 2009


Author: tfheen
Date: 2009-02-05 12:35:20 +0100 (Thu, 05 Feb 2009)
New Revision: 3614

Modified:
   branches/2.0/varnish-cache/bin/varnishd/cache.h
   branches/2.0/varnish-cache/bin/varnishd/hash_classic.c
   branches/2.0/varnish-cache/bin/varnishd/hash_simple_list.c
Log:
Merge r3404: Move the hash'ers refcount up to objhead, it is generic.



Modified: branches/2.0/varnish-cache/bin/varnishd/cache.h
===================================================================
--- branches/2.0/varnish-cache/bin/varnishd/cache.h	2009-02-05 11:31:24 UTC (rev 3613)
+++ branches/2.0/varnish-cache/bin/varnishd/cache.h	2009-02-05 11:35:20 UTC (rev 3614)
@@ -297,6 +297,7 @@
 	void			*hashpriv;
 
 	struct lock		mtx;
+	unsigned		refcnt;
 	VTAILQ_HEAD(,object)	objects;
 	char			*hash;
 	unsigned		hashlen;

Modified: branches/2.0/varnish-cache/bin/varnishd/hash_classic.c
===================================================================
--- branches/2.0/varnish-cache/bin/varnishd/hash_classic.c	2009-02-05 11:31:24 UTC (rev 3613)
+++ branches/2.0/varnish-cache/bin/varnishd/hash_classic.c	2009-02-05 11:35:20 UTC (rev 3614)
@@ -49,7 +49,6 @@
 	VTAILQ_ENTRY(hcl_entry)	list;
 	struct hcl_hd		*head;
 	struct objhead		*oh;
-	unsigned		refcnt;
 	unsigned		digest;
 	unsigned		hash;
 };
@@ -167,7 +166,7 @@
 				continue;
 			if (i > 0)
 				break;
-			he->refcnt++;
+			he->oh->refcnt++;
 			roh = he->oh;
 			Lck_Unlock(&hp->mtx);
 			/*
@@ -191,7 +190,7 @@
 				VTAILQ_INSERT_BEFORE(he, he2, list);
 			else
 				VTAILQ_INSERT_TAIL(&hp->head, he2, list);
-			he2->refcnt++;
+			he2->oh->refcnt++;
 			noh = he2->oh;
 			Lck_Unlock(&hp->mtx);
 			return (noh);
@@ -231,11 +230,11 @@
 	CAST_OBJ_NOTNULL(he, oh->hashpriv, HCL_ENTRY_MAGIC);
 	hp = he->head;
 	CHECK_OBJ_NOTNULL(hp, HCL_HEAD_MAGIC);
-	assert(he->refcnt > 0);
+	assert(he->oh->refcnt > 0);
 	assert(he->hash < hcl_nhash);
 	assert(hp == &hcl_head[he->hash]);
 	Lck_Lock(&hp->mtx);
-	if (--he->refcnt == 0)
+	if (--he->oh->refcnt == 0)
 		VTAILQ_REMOVE(&hp->head, he, list);
 	else
 		he = NULL;

Modified: branches/2.0/varnish-cache/bin/varnishd/hash_simple_list.c
===================================================================
--- branches/2.0/varnish-cache/bin/varnishd/hash_simple_list.c	2009-02-05 11:31:24 UTC (rev 3613)
+++ branches/2.0/varnish-cache/bin/varnishd/hash_simple_list.c	2009-02-05 11:35:20 UTC (rev 3614)
@@ -47,7 +47,6 @@
 struct hsl_entry {
 	VTAILQ_ENTRY(hsl_entry)	list;
 	struct objhead		*oh;
-	unsigned		refcnt;
 };
 
 static VTAILQ_HEAD(, hsl_entry)	hsl_head = VTAILQ_HEAD_INITIALIZER(hsl_head);
@@ -85,7 +84,7 @@
 			continue;
 		if (i > 0)
 			break;
-		he->refcnt++;
+		he->oh->refcnt++;
 		noh = he->oh;
 		Lck_Unlock(&hsl_mtx);
 		return (noh);
@@ -94,7 +93,7 @@
 		he2 = calloc(sizeof *he2, 1);
 		XXXAN(he2);
 		he2->oh = noh;
-		he2->refcnt = 1;
+		he2->oh->refcnt = 1;
 
 		noh->hashpriv = he2;
 		noh->hash = malloc(sp->lhashptr);
@@ -124,7 +123,7 @@
 	AN(oh->hashpriv);
 	he = oh->hashpriv;
 	Lck_Lock(&hsl_mtx);
-	if (--he->refcnt == 0) {
+	if (--he->oh->refcnt == 0) {
 		VTAILQ_REMOVE(&hsl_head, he, list);
 		free(he);
 		ret = 0;



More information about the varnish-commit mailing list