-WARNS6 cleanup (229 warnings)
[dragonfly.git] / test / sysperf / loop2.c
1 /*
2  * loop2.c
3  *
4  * Used as a helper to test AST delivery.  Loops in user mode for a few
5  * seconds.  This one forks and runs the loop in two processes.
6  *
7  * $DragonFly: src/test/sysperf/loop2.c,v 1.2 2006/04/22 22:32:52 dillon Exp $
8  */
9
10 #include "blib.h"
11
12 #define LOOP 1000000
13 #define INNER 100
14
15 int
16 main(int ac, char **av)
17 {
18     int i;
19     int j;
20     int count = LOOP;
21     pid_t pid;
22
23     if (ac > 1)
24         count = strtoul(av[1], NULL, 0);
25
26     printf("SMP contention, userland-only loop, duel-forks.  Run just one\n");
27
28     start_timing();
29     if (fork() == 0) {
30         for (i = count; i > 0; --i) {
31             for (j = INNER; j > 0; --j)
32                 nop();
33         }
34         _exit(1);
35     } else {
36         for (i = count; i > 0; --i) {
37             for (j = INNER; j > 0; --j)
38                 nop();
39         }
40         while (wait(NULL) > 0)
41             ;
42         stop_timing(LOOP, "loop2/2xfork");
43     }
44     return(0);
45 }
46