Exemplo n.º 1
0
int
benchmark(void *tsd, result_t *res)
{
	tsd_t			*ts = (tsd_t *)tsd;
	int			i;

	for (i = 0; i < lm_optB; i++) {
		ts->ts_pids[i] = fork();
		switch (ts->ts_pids[i]) {
		case 0:
			(void) barrier_queue(b, NULL);
			exit(0);
			break;
		case -1:
			res->re_errors++;
			break;
		default:
			continue;
		}
	}
	res->re_count = lm_optB;

	(void) barrier_queue(b, NULL);

	return (0);
}
Exemplo n.º 2
0
/*ARGSUSED*/
int
benchmark(void *tsd, result_t *res)
{
	int			i;

	/*
	 * start them all exiting
	 */

	(void) barrier_queue(b, NULL);

	/*
	 * wait for them all to exit
	 */

	for (i = 0; i < lm_optB; i++) {
		switch (waitpid((pid_t)-1, NULL, 0)) {
		case 0:
			continue;
		case -1:
			res->re_errors++;
		}
	}

	res->re_count = i;

	return (0);
}
Exemplo n.º 3
0
int
benchmark_pre(void *tsd)
{
	tsd_t			*ts = (tsd_t *)tsd;

	if (ts->ts_once++ == 0) {
		ts->ts_pids = (int *)malloc(sizeof (pid_t));
		LM_CHK(ts->ts_pids != NULL);
	}

	/*
	 * create processes to exit
	 */

	LM_CHK((ts->ts_pids[0] = fork()) != -1);
	switch (ts->ts_pids[0]) {
	case 0:
		(void) barrier_queue(b, NULL);
		if (opte)
			_exit(0);
		exit(0);
		break;
	default:
		break;
	}

	return (0);
}
Exemplo n.º 4
0
/*ARGSUSED*/
int
benchmark(void *tsd, result_t *res)
{
	/*
	 * Start them all exiting.
	 */
	(void) barrier_queue(b, NULL);
	LM_CHK(waitpid((pid_t)-1, NULL, 0) != -1);

	return (0);
}
Exemplo n.º 5
0
int
benchmark_initbatch(void *tsd)
{
	tsd_t			*ts = (tsd_t *)tsd;
	int			i;
	int			errors = 0;

	if (ts->ts_once++ == 0) {
		ts->ts_pids = (int *)malloc(lm_optB * sizeof (pid_t));
		if (ts->ts_pids == NULL) {
			errors ++;
		}
	}

	/*
	 * create processes to exit
	 */

	for (i = 0; i < lm_optB; i++) {
		ts->ts_pids[i] = fork();
		switch (ts->ts_pids[i]) {
		case 0:
			(void) barrier_queue(b, NULL);
			if (opte)
				_exit(0);
			exit(0);
			break;
		case -1:
			errors ++;
			break;
		default:
			continue;
		}
	}

	return (errors);
}