X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/mLib/blobdiff_plain/43f490c377cb05d1ac6e7d2c27a06ae940e2c047..a077a9a931a4b81abf0f549d7f463ae75075149a:/test/tvec-main.c diff --git a/test/tvec-main.c b/test/tvec-main.c index f2ba9ca..0566292 100644 --- a/test/tvec-main.c +++ b/test/tvec-main.c @@ -141,6 +141,18 @@ Automake driver options:\n\ ", fp); } +struct bench_resource { + pool_resource r; + struct bench_state **bst; +}; + +static void release_bench(pool_resource *r) +{ + struct bench_resource *br = (struct bench_resource *)r; + + if (*br->bst) { bench_destroy(*br->bst); *br->bst = 0; } +} + /* --- @tvec_parseargs@ --- * * * Arguments: @int argc@ = number of command-line arguments @@ -170,6 +182,7 @@ void tvec_parseargs(int argc, char *argv[], struct tvec_state *tv_out, struct tvec_amargs am; double benchtime = 1.0, scale; struct bench_timer *tm; + struct bench_resource *br; const char *p; char *q; int opt; unsigned f = 0; @@ -306,6 +319,9 @@ void tvec_parseargs(int argc, char *argv[], struct tvec_state *tv_out, } tvec_begin(tv_out, config, o); *argpos_out = optind; + POOL_NEW(br, tv_out->p_session); + br->bst = &tvec_benchstate; + POOL_ADD(tv_out->p_session, &br->r, release_bench); #undef f_bogus #undef f_bench