#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include "libmicro.h"
int
benchmark_init()
{
lm_tsdsize = 0;
(void) sprintf(lm_usage, "notes: measures sigprocmask()\n");
return (0);
}
int
benchmark_initrun()
{
sigset_t iset;
(void) sigemptyset(&iset);
(void) sigprocmask(SIG_SETMASK, &iset, NULL);
return (0);
}
int
benchmark(void *tsd, result_t *res)
{
int i;
sigset_t set0, set1;
(void) sigemptyset(&set0);
(void) sigaddset(&set0, SIGTERM);
for (i = 0; i < lm_optB; i += 10) {
(void) sigprocmask(SIG_SETMASK, &set0, &set1);
(void) sigprocmask(SIG_SETMASK, &set1, &set0);
(void) sigprocmask(SIG_SETMASK, &set0, &set1);
(void) sigprocmask(SIG_SETMASK, &set1, &set0);
(void) sigprocmask(SIG_SETMASK, &set0, &set1);
(void) sigprocmask(SIG_SETMASK, &set1, &set0);
(void) sigprocmask(SIG_SETMASK, &set0, &set1);
(void) sigprocmask(SIG_SETMASK, &set1, &set0);
(void) sigprocmask(SIG_SETMASK, &set0, &set1);
(void) sigprocmask(SIG_SETMASK, &set1, &set0);
}
res->re_count += i;
return (0);
}