]> err.no Git - varnish/commitdiff
reorg a little bit.
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sat, 22 Jul 2006 22:01:04 +0000 (22:01 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sat, 22 Jul 2006 22:01:04 +0000 (22:01 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@566 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/hash_classic.c

index b25931dedd3f08ccdfde8b76f7d471fa99399c78..5c836e5ea84458d774e36d4ca5f90228d5df1566 100644 (file)
@@ -177,16 +177,16 @@ hcl_deref(struct objhead *oh)
        CAST_OBJ_NOTNULL(he, oh->hashpriv, HCL_ENTRY_MAGIC);
        mtx = he->mtx;
        AZ(pthread_mutex_lock(&hcl_mutex[mtx]));
-       if (--he->refcnt == 0) {
-               free(he->key1);
-               free(he->key2);
-               TAILQ_REMOVE(&hcl_head[he->hash], he, list);
-               free(he);
-               ret = 0;
-       } else
-               ret = 1;
+       if (--he->refcnt >= 0) {
+               AZ(pthread_mutex_unlock(&hcl_mutex[mtx]));
+               return (1)
+       }
+       TAILQ_REMOVE(&hcl_head[he->hash], he, list);
        AZ(pthread_mutex_unlock(&hcl_mutex[mtx]));
-       return (ret);
+       free(he->key1);
+       free(he->key2);
+       free(he);
+       return (0);
 }
 
 /*--------------------------------------------------------------------*/