equal
deleted
inserted
replaced
18 fprintf(stderr, "%s\n", msg); |
18 fprintf(stderr, "%s\n", msg); |
19 fflush(stderr); |
19 fflush(stderr); |
20 exit(2); |
20 exit(2); |
21 } |
21 } |
22 |
22 |
|
23 static time_t now() |
|
24 { |
|
25 struct timeval tv; |
|
26 if (gettimeofday(&tv, NULL) == 0) { |
|
27 return tv.tv_sec * 1000 + tv.tv_usec / 1000; |
|
28 } |
|
29 else { |
|
30 return time(NULL) * 1000; |
|
31 } |
|
32 } |
|
33 |
23 |
34 |
24 int main(int argc, char *argv[]) |
35 int main(int argc, char *argv[]) |
25 { |
36 { |
26 /* args */ |
37 /* args */ |
27 |
38 |
34 char *timing_name = argv[2]; |
45 char *timing_name = argv[2]; |
35 |
46 |
36 |
47 |
37 /* potential fork */ |
48 /* potential fork */ |
38 |
49 |
39 time_t time_start = time(NULL); |
50 time_t time_start = now(); |
40 |
51 |
41 if (strlen(timing_name) > 0 || setsid() == -1) { |
52 if (strlen(timing_name) > 0 || setsid() == -1) { |
42 pid_t pid = fork(); |
53 pid_t pid = fork(); |
43 |
54 |
44 if (pid == -1) fail("Cannot set session id (failed to fork)"); |
55 if (pid == -1) fail("Cannot set session id (failed to fork)"); |
50 } |
61 } |
51 |
62 |
52 /* report timing */ |
63 /* report timing */ |
53 |
64 |
54 if (strlen(timing_name) > 0) { |
65 if (strlen(timing_name) > 0) { |
55 long long timing_elapsed = (time(NULL) - time_start) * 1000; |
66 long long timing_elapsed = now() - time_start; |
56 |
67 |
57 struct rusage ru; |
68 struct rusage ru; |
58 getrusage(RUSAGE_CHILDREN, &ru); |
69 getrusage(RUSAGE_CHILDREN, &ru); |
59 |
70 |
60 long long timing_cpu = |
71 long long timing_cpu = |