mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 11:37:35 +00:00
3f0bcdc3ef
- Exhaustively document cancellation points - Rename SIGCANCEL to SIGTHR just like BSDs - Further improve POSIX thread cancellations - Ensure asynchronous cancellations work correctly - Elevate the quality of getrandom() and getentropy() - Make futexes cancel correctly on OpenBSD 6.x and 7.x - Add reboot.com and shutdown.com to examples directory - Remove underscore prefix from awesome timespec_*() APIs - Create assertions that help verify our cancellation points - Remove bad timespec APIs (cmp generalizes eq/ne/gt/gte/lt/lte)
56 lines
1.9 KiB
C
56 lines
1.9 KiB
C
#if 0
|
|
/*─────────────────────────────────────────────────────────────────╗
|
|
│ To the extent possible under law, Justine Tunney has waived │
|
|
│ all copyright and related or neighboring rights to this file, │
|
|
│ as it is written in the following disclaimers: │
|
|
│ • http://unlicense.org/ │
|
|
│ • http://creativecommons.org/publicdomain/zero/1.0/ │
|
|
╚─────────────────────────────────────────────────────────────────*/
|
|
#endif
|
|
#include "libc/calls/struct/timespec.h"
|
|
#include "libc/errno.h"
|
|
#include "libc/intrin/describeflags.internal.h"
|
|
#include "libc/intrin/kprintf.h"
|
|
#include "libc/str/str.h"
|
|
#include "libc/sysv/consts/clock.h"
|
|
|
|
int n;
|
|
int shown[64];
|
|
|
|
void show(int clock) {
|
|
int i;
|
|
struct timespec ts;
|
|
if (clock == 127) return;
|
|
for (i = 0; i < n; ++i) {
|
|
if (shown[i] == clock) {
|
|
return;
|
|
}
|
|
}
|
|
shown[n++] = clock;
|
|
if (clock_getres(clock, &ts) != -1) {
|
|
kprintf("%s %'ld ns\n", DescribeClockName(clock), timespec_tonanos(ts));
|
|
} else {
|
|
kprintf("%s %s\n", DescribeClockName(clock), _strerrno(errno));
|
|
}
|
|
}
|
|
|
|
int main(int argc, char *argv[]) {
|
|
show(CLOCK_REALTIME);
|
|
show(CLOCK_REALTIME_FAST);
|
|
show(CLOCK_REALTIME_PRECISE);
|
|
show(CLOCK_MONOTONIC);
|
|
show(CLOCK_MONOTONIC_RAW);
|
|
show(CLOCK_MONOTONIC_FAST);
|
|
show(CLOCK_MONOTONIC_PRECISE);
|
|
show(CLOCK_PROCESS_CPUTIME_ID);
|
|
show(CLOCK_THREAD_CPUTIME_ID);
|
|
show(CLOCK_PROF);
|
|
show(CLOCK_BOOTTIME);
|
|
show(CLOCK_REALTIME_ALARM);
|
|
show(CLOCK_BOOTTIME_ALARM);
|
|
show(CLOCK_TAI);
|
|
show(CLOCK_UPTIME);
|
|
show(CLOCK_UPTIME_PRECISE);
|
|
show(CLOCK_UPTIME_FAST);
|
|
show(CLOCK_SECOND);
|
|
}
|