コード例 #1
0
int
tweak_poolparam(struct vsb *vsb, const struct parspec *par, const char *arg)
{
	volatile struct poolparam *pp, px;
	char **av;
	int retval = 0;

	pp = par->priv;
	if (arg == NULL) {
		VSB_printf(vsb, "%u,%u,%g",
		    pp->min_pool, pp->max_pool, pp->max_age);
	} else {
		av = VAV_Parse(arg, NULL, ARGV_COMMA);
		do {
			if (av[0] != NULL) {
				VSB_printf(vsb, "Parse error: %s", av[0]);
				retval = -1;
				break;
			}
			if (av[1] == NULL || av[2] == NULL || av[3] == NULL) {
				VSB_printf(vsb,
				    "Three fields required:"
				    " min_pool, max_pool and max_age\n");
				retval = -1;
				break;
			}
			px = *pp;
			retval = tweak_generic_uint(vsb, &px.min_pool, av[1],
			    par->min, par->max);
			if (retval)
				break;
			retval = tweak_generic_uint(vsb, &px.max_pool, av[2],
			    par->min, par->max);
			if (retval)
				break;
			retval = tweak_generic_double(vsb,
			    &px.max_age, av[3], "0", "1e6", "%.0f");
			if (retval)
				break;
			if (px.min_pool > px.max_pool) {
				VSB_printf(vsb,
				    "min_pool cannot be larger"
				    " than max_pool\n");
				retval = -1;
				break;
			}
			*pp = px;
		} while(0);
		VAV_Free(av);
	}
	return (retval);
}
コード例 #2
0
int
tweak_uint(struct vsb *vsb, const struct parspec *par, const char *arg)
{
	volatile unsigned *dest;

	dest = par->priv;
	return (tweak_generic_uint(vsb, dest, arg, par->min, par->max));
}
コード例 #3
0
ファイル: mgt_param.c プロジェクト: QES/Varnish-Cache
void
tweak_uint(struct cli *cli, const struct parspec *par, const char *arg)
{
	volatile unsigned *dest;

	dest = par->priv;
	tweak_generic_uint(cli, dest, arg, (uint)par->min, (uint)par->max);
}
コード例 #4
0
ファイル: mgt_pool.c プロジェクト: tfheen/Varnish-Cache
static void
tweak_thread_pool_min(struct cli *cli, const struct parspec *par,
    const char *arg)
{

	(void)tweak_generic_uint(cli, &mgt_param.wthread_min, arg,
	    (unsigned)par->min, mgt_param.wthread_max);
}
コード例 #5
0
ファイル: mgt_pool.c プロジェクト: tfheen/Varnish-Cache
static void
tweak_thread_pool_max(struct cli *cli, const struct parspec *par,
    const char *arg)
{

	(void)par;
	(void)tweak_generic_uint(cli, &mgt_param.wthread_max, arg,
	    mgt_param.wthread_min, UINT_MAX);
}
コード例 #6
0
ファイル: mgt_pool.c プロジェクト: fgsch/varnish-cache
static int
tweak_thread_pool_max(struct vsb *vsb, const struct parspec *par,
    const char *arg)
{

	if (tweak_generic_uint(vsb, par->priv, arg, par->min, par->max))
		return (-1);
	MCF_ParamConf(MCF_MAXIMUM, "thread_pool_min",
	    "%u", mgt_param.wthread_max);
	return (0);
}
コード例 #7
0
ファイル: mgt_pool.c プロジェクト: tfheen/Varnish-Cache
static void
tweak_stack_size(struct cli *cli, const struct parspec *par,
    const char *arg)
{
	unsigned low, u;
	char buf[12];

	low = sysconf(_SC_THREAD_STACK_MIN);

	if (arg != NULL && !strcmp(arg, "32bit")) {
		u = 65536;
		if (u < low)
			u = low;
		sprintf(buf, "%u", u);
		arg = buf;
	}

	(void)tweak_generic_uint(cli, &mgt_param.wthread_stacksize, arg,
	    low, (uint)par->max);
}