|
|
1.1 root 1: /*
2: * Signal without context switch benchmark.
3: */
4: #include <signal.h>
5:
6: int pid;
7: int nsigs;
8: int sigsub();
9:
10: main(argc, argv)
11: char *argv[];
12: {
13: register int i;
14:
15: if (argc < 2) {
16: printf("usage: %s nsignals\n", argv[0]);
17: exit(1);
18: }
19: nsigs = atoi(argv[1]);
20: signal(SIGALRM, sigsub);
21: pid = getpid();
22: for (i = 0; i < nsigs; i++)
23: kill(pid, SIGALRM);
24: }
25:
26: sigsub()
27: {
28: static mustreset = 1;
29: int (*osig)();
30:
31: if (mustreset) {
32: osig = signal(SIGALRM, sigsub);
33: if (osig == sigsub)
34: mustreset = 0;
35: }
36: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.