4 static struct timeval start
;
7 void pause(void) { SleepEx(INFINITE
, TRUE
); }
13 printstamp(struct timeval
*tp
)
15 static struct tm
*tmp
;
16 time_t tt
= (time_t)tp
->tv_sec
;
19 fprintf(stderr
, "%02d:%02d:%02d.%06d", tmp
->tm_hour
, tmp
->tm_min
, tmp
->tm_sec
, (int)tp
->tv_usec
);
23 onevent(int afid
, void *data
)
26 static int delay
= -3;
29 struct timeval sec
= { 0, 0 };
31 gettimeofday(&now
, NULL
);
33 if (pmDebug
& DBG_TRACE_AF
) {
34 fprintf(stderr
, "onevent(%d, " PRINTF_P_PFX
"%p) called: ", afid
, data
);
39 elapsed
= __pmtimevalSub(&now
, &start
);
42 printf("event %d callback\n", afid
);
45 evnum
= (int)(elapsed
/ 2.5);
47 evnum
= (int)(elapsed
/ 1.5);
48 /* evnum not reliable for small elapsed intervals */
50 printf("event %d callback #%d\n", afid
, evnum
);
52 printf("event %d callback #?\n", afid
);
56 /* only report the unexpected */
57 if (__pmAFunregister(reg
[0]) < 0)
58 printf("unregister %d failed\n", reg
[0]);
59 if (__pmAFunregister(reg
[1]) == 0)
60 printf("unregister %d success\n", reg
[1]);
61 if (__pmAFunregister(reg
[2]) == 0)
62 printf("unregister %d success\n", reg
[2]);
63 if (__pmAFunregister(reg
[3]) < 0)
64 printf("unregister %d failed\n", reg
[0]);
69 * was sginap(delay * CLK_TCK) ... usleep() for
70 * delay*CLK_TCK*10^6/CLK_TCK microseconds so "delay" sec
73 __pmtimevalSleep(sec
);
77 if (pmDebug
& DBG_TRACE_AF
) {
78 gettimeofday(&now
, NULL
);
79 fprintf(stderr
, "onevent done: ");
89 main(int argc
, char **argv
)
94 struct timeval delta
= { 2, 500000 };
97 __pmSetProgname(argv
[0]);
99 while ((c
= getopt(argc
, argv
, "D:?")) != EOF
) {
102 case 'D': /* debug flag */
103 sts
= __pmParseDebug(optarg
);
105 fprintf(stderr
, "%s: unrecognized debug flag specification (%s)\n",
122 "Usage: %s options ...\n\
125 -D debug standard PCP debug flag\n",
131 gettimeofday(&start
, NULL
);
132 reg
[0] = __pmAFregister(&delta
, NULL
, onevent
);
134 reg
[1] = __pmAFregister(&delta
, NULL
, onevent
);
137 reg
[2] = __pmAFregister(&delta
, NULL
, onevent
);
138 delta
.tv_sec
= 60; /* will never fire */
139 reg
[3] = __pmAFregister(&delta
, NULL
, onevent
);
145 if (pmDebug
& DBG_TRACE_AF
) {
146 gettimeofday(&now
, NULL
);
147 fprintf(stderr
, "returned from pause(): ");