[experimental-ims] a5d9851 Introduce a function to initialize a VSL buffer

Geoff Simmons geoff at varnish-cache.org
Tue Feb 14 17:49:34 CET 2012


commit a5d9851ae5120aaa434838dcd576d2af54b74a89
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Mon Feb 13 21:40:29 2012 +0000

    Introduce a function to initialize a VSL buffer

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 0ff57c9..dd3b004 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -911,6 +911,7 @@ extern struct VSC_C_main *VSC_C_main;
 void VSM_Init(void);
 void *VSM_Alloc(unsigned size, const char *class, const char *type,
     const char *ident);
+void VSL_Setup(struct vsl_log *vsl, void *ptr, size_t len);
 void VSM_Free(void *ptr);
 #ifdef VSL_ENDMARKER
 void VSL(enum VSL_tag_e tag, int id, const char *fmt, ...)
diff --git a/bin/varnishd/cache/cache_shmlog.c b/bin/varnishd/cache/cache_shmlog.c
index 461aa97..ab715b7 100644
--- a/bin/varnishd/cache/cache_shmlog.c
+++ b/bin/varnishd/cache/cache_shmlog.c
@@ -304,6 +304,18 @@ WSLB(struct worker *wrk, enum VSL_tag_e tag, const char *fmt, ...)
 
 /*--------------------------------------------------------------------*/
 
+void
+VSL_Setup(struct vsl_log *vsl, void *ptr, size_t len)
+{
+	vsl->wlp = ptr;
+	vsl->wlb = ptr;
+	vsl->wle = ptr;
+	vsl->wle += len / sizeof(*vsl->wle);
+	vsl->wlr = 0;
+}
+
+/*--------------------------------------------------------------------*/
+
 static void *
 vsm_cleaner(void *priv)
 {
diff --git a/bin/varnishd/cache/cache_wrk.c b/bin/varnishd/cache/cache_wrk.c
index 591e633..d421740 100644
--- a/bin/varnishd/cache/cache_wrk.c
+++ b/bin/varnishd/cache/cache_wrk.c
@@ -104,8 +104,7 @@ wrk_bgthread(void *arg)
 	memset(&wrk, 0, sizeof wrk);
 	sp->wrk = &wrk;
 	wrk.magic = WORKER_MAGIC;
-	wrk.vsl->wlp = wrk.vsl->wlb = logbuf;
-	wrk.vsl->wle = logbuf + (sizeof logbuf) / 4;
+	VSL_Setup(wrk.vsl, logbuf, sizeof logbuf);
 
 	(void)bt->func(sp, bt->priv);
 



More information about the varnish-commit mailing list