[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