1 /*
2 * varsym..c
3 *
4 * varsym [threads]
5 *
6 * tests shared lock using varsym_get()
7 */
8
9 #include "blib.h"
10 #include <sys/varsym.h>
11
12 int
main(int ac,char ** av)13 main(int ac, char **av)
14 {
15 long long count = 0;
16 long long max;
17 char c;
18 int n;
19 int i;
20 int j;
21 int status;
22 char buf[256];
23
24 printf("timing standard varsym_get() syscall, VARSYM_SYS\n");
25
26 start_timing();
27 while (stop_timing(0, NULL) == 0) {
28 varsym_get(VARSYM_SYS_MASK, "fubar", buf, sizeof(buf));
29 ++count;
30 }
31 max = count * 4;
32
33 if (ac > 1)
34 n = strtol(av[1], NULL, 0);
35 else
36 n = 1;
37
38 start_timing();
39 for (i = 0; i < n; ++i) {
40 if (fork() == 0) {
41 for (count = 0; count < max; ++count) {
42 varsym_get(VARSYM_SYS_MASK, "fubar",
43 buf, sizeof(buf));
44 }
45 _exit(0);
46 }
47 }
48 while (wait3(&status, 0, NULL) >= 0 || errno == EINTR)
49 ;
50 stop_timing(max * n, "varsym1");
51
52 return(0);
53 }
54