From: phk Date: Tue, 10 Jun 2008 14:37:14 +0000 (+0000) Subject: Refactor the fields of struct acct so we don't have to remember them three X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=965efa29de947a31e9d370fc6f8743f65028258f;p=varnish Refactor the fields of struct acct so we don't have to remember them three different places in the code. git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2661 d4fa192b-c00b-0410-8231-f00ffab90ce4 --- diff --git a/varnish-cache/bin/varnishd/acct_fields.h b/varnish-cache/bin/varnishd/acct_fields.h new file mode 100644 index 00000000..383cd595 --- /dev/null +++ b/varnish-cache/bin/varnishd/acct_fields.h @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2008 Verdens Gang AS + * Copyright (c) 2008 Linpro AS + * All rights reserved. + * + * Author: Poul-Henning Kamp + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: steps.h 2415 2008-01-31 11:57:51Z des $ + */ + +ACCT(sess) +ACCT(req) +ACCT(pipe) +ACCT(pass) +ACCT(fetch) +ACCT(hdrbytes) +ACCT(bodybytes) diff --git a/varnish-cache/bin/varnishd/cache.h b/varnish-cache/bin/varnishd/cache.h index 6dc8aa39..d572f008 100644 --- a/varnish-cache/bin/varnishd/cache.h +++ b/varnish-cache/bin/varnishd/cache.h @@ -159,13 +159,9 @@ struct http_conn { struct acct { double first; - uint64_t sess; - uint64_t req; - uint64_t pipe; - uint64_t pass; - uint64_t fetch; - uint64_t hdrbytes; - uint64_t bodybytes; +#define ACCT(foo) uint64_t foo; +#include "acct_fields.h" +#undef ACCT }; /*--------------------------------------------------------------------*/ diff --git a/varnish-cache/bin/varnishd/cache_cli.c b/varnish-cache/bin/varnishd/cache_cli.c index 63b05639..808f711e 100644 --- a/varnish-cache/bin/varnishd/cache_cli.c +++ b/varnish-cache/bin/varnishd/cache_cli.c @@ -193,6 +193,7 @@ cli_debug_sizeof(struct cli *cli, const char * const *av, void *priv) SZOF(struct objhead); SZOF(struct sess); SZOF(struct vbe_conn); + SZOF(struct varnish_stats); } /*--------------------------------------------------------------------*/ diff --git a/varnish-cache/bin/varnishd/cache_session.c b/varnish-cache/bin/varnishd/cache_session.c index b15b59b8..53511e44 100644 --- a/varnish-cache/bin/varnishd/cache_session.c +++ b/varnish-cache/bin/varnishd/cache_session.c @@ -213,13 +213,9 @@ static void ses_sum_acct(struct acct *sum, const struct acct *inc) { - sum->sess += inc->sess; - sum->req += inc->req; - sum->pipe += inc->pipe; - sum->pass += inc->pass; - sum->fetch += inc->fetch; - sum->hdrbytes += inc->hdrbytes; - sum->bodybytes += inc->bodybytes; +#define ACCT(foo) sum->foo += inc->foo; +#include "acct_fields.h" +#undef ACCT } void @@ -243,13 +239,9 @@ SES_Charge(struct sess *sp) b.fetch, b.hdrbytes, b.bodybytes); } LOCK(&stat_mtx); - VSL_stats->s_sess += a->sess; - VSL_stats->s_req += a->req; - VSL_stats->s_pipe += a->pipe; - VSL_stats->s_pass += a->pass; - VSL_stats->s_fetch += a->fetch; - VSL_stats->s_hdrbytes += a->hdrbytes; - VSL_stats->s_bodybytes += a->bodybytes; +#define ACCT(foo) VSL_stats->s_##foo += a->foo; +#include "acct_fields.h" +#undef ACCT UNLOCK(&stat_mtx); memset(a, 0, sizeof *a); }