[master] 110b8e7 Use WRK_BgThread() instead of hand-rolling

Poul-Henning Kamp phk at varnish-cache.org
Mon Dec 26 10:12:18 CET 2011


commit 110b8e719bdf062b449faf4b79dd360d4fba82c2
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Mon Dec 26 09:12:08 2011 +0000

    Use WRK_BgThread() instead of hand-rolling

diff --git a/bin/varnishd/hash/hash_critbit.c b/bin/varnishd/hash/hash_critbit.c
index 3b55490..5fafac5 100644
--- a/bin/varnishd/hash/hash_critbit.c
+++ b/bin/varnishd/hash/hash_critbit.c
@@ -344,17 +344,13 @@ static struct cli_proto hcb_cmds[] = {
 
 /*--------------------------------------------------------------------*/
 
-static void *
-hcb_cleaner(void *priv)
+static void * __match_proto__(bgthread_t)
+hcb_cleaner(struct sess *sp, void *priv)
 {
 	struct hcb_y *y, *y2;
-	struct worker wrk;
+	struct worker *wrk = sp->wrk;
 	struct objhead *oh, *oh2;
 
-	memset(&wrk, 0, sizeof wrk);
-	wrk.magic = WORKER_MAGIC;
-
-	THR_SetName("hcb_cleaner");
 	(void)priv;
 	while (1) {
 		VSTAILQ_FOREACH_SAFE(y, &dead_y, list, y2) {
@@ -363,13 +359,13 @@ hcb_cleaner(void *priv)
 		}
 		VTAILQ_FOREACH_SAFE(oh, &dead_h, hoh_list, oh2) {
 			VTAILQ_REMOVE(&dead_h, oh, hoh_list);
-			HSH_DeleteObjHead(&wrk, oh);
+			HSH_DeleteObjHead(wrk, oh);
 		}
 		Lck_Lock(&hcb_mtx);
 		VSTAILQ_CONCAT(&dead_y, &cool_y);
 		VTAILQ_CONCAT(&dead_h, &cool_h, hoh_list);
 		Lck_Unlock(&hcb_mtx);
-		WRK_SumStat(&wrk);
+		WRK_SumStat(wrk);
 		VTIM_sleep(cache_param->critbit_cooloff);
 	}
 	NEEDLESS_RETURN(NULL);
@@ -386,8 +382,7 @@ hcb_start(void)
 	(void)oh;
 	CLI_AddFuncs(hcb_cmds);
 	Lck_New(&hcb_mtx, lck_hcb);
-	/* XXX: use WRK_BgThread */
-	AZ(pthread_create(&tp, NULL, hcb_cleaner, NULL));
+	WRK_BgThread(&tp, "hcb-cleaner", hcb_cleaner, NULL);
 	memset(&hcb_root, 0, sizeof hcb_root);
 	hcb_build_bittbl();
 }



More information about the varnish-commit mailing list