", 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
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;
}
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