]> err.no Git - varnish/commitdiff
Track objects heap-position
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 29 Jun 2006 19:06:44 +0000 (19:06 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 29 Jun 2006 19:06:44 +0000 (19:06 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@269 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache.h
varnish-cache/bin/varnishd/cache_expire.c

index 54507eb37aab6ada3798b5ad74ebad4d122e458f..3018ef077f843d0e21bf30ed3548bb82e014c89d 100644 (file)
@@ -70,6 +70,7 @@ struct object {
        struct objhead          *objhead;
        pthread_cond_t          cv;
 
+       unsigned                heap_idx;
        unsigned                ban_seq;
 
        unsigned                valid;
index c76b842aa594ec5bd029e591c1c2ddba097b7b07..2334c2b63389ce0b63c9ad0aeb6faaeec1fb3c9f 100644 (file)
@@ -115,6 +115,14 @@ object_cmp(void *priv, void *a, void *b)
        return (aa->ttl < bb->ttl);
 }
 
+static void
+object_update(void *priv, void *p, unsigned u)
+{
+       struct object *o = p;
+
+       o->heap_idx = u;
+}
+
 /*--------------------------------------------------------------------*/
 
 void
@@ -124,6 +132,6 @@ EXP_Init(void)
        AZ(pthread_mutex_init(&exp_mtx, NULL));
        AZ(pthread_create(&exp_thread, NULL, exp_prefetch, NULL));
        AZ(pthread_create(&exp_thread, NULL, exp_hangman, NULL));
-       exp_heap = binheap_new(NULL, object_cmp, NULL);
+       exp_heap = binheap_new(NULL, object_cmp, object_update);
        assert(exp_heap != NULL);
 }