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