diff options
Diffstat (limited to 'man3/pthread_getcpuclockid.3')
-rw-r--r-- | man3/pthread_getcpuclockid.3 | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/man3/pthread_getcpuclockid.3 b/man3/pthread_getcpuclockid.3 index 92c4b47a0..bac136159 100644 --- a/man3/pthread_getcpuclockid.3 +++ b/man3/pthread_getcpuclockid.3 @@ -101,7 +101,7 @@ Subthread CPU time: 0.992 .\" SRC BEGIN (pthread_getcpuclockid.c) .EX /* Link with "\-lrt" */ - +\& #include <errno.h> #include <pthread.h> #include <stdint.h> @@ -110,13 +110,13 @@ Subthread CPU time: 0.992 #include <string.h> #include <time.h> #include <unistd.h> - +\& #define handle_error(msg) \e do { perror(msg); exit(EXIT_FAILURE); } while (0) - +\& #define handle_error_en(en, msg) \e do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0) - +\& static void * thread_start(void *arg) { @@ -124,51 +124,51 @@ thread_start(void *arg) for (;;) continue; } - +\& static void pclock(char *msg, clockid_t cid) { struct timespec ts; - +\& printf("%s", msg); if (clock_gettime(cid, &ts) == \-1) handle_error("clock_gettime"); printf("%4jd.%03ld\en", (intmax_t) ts.tv_sec, ts.tv_nsec / 1000000); } - +\& int main(void) { pthread_t thread; clockid_t cid; int s; - +\& s = pthread_create(&thread, NULL, thread_start, NULL); if (s != 0) handle_error_en(s, "pthread_create"); - +\& printf("Main thread sleeping\en"); sleep(1); - +\& printf("Main thread consuming some CPU time...\en"); for (unsigned int j = 0; j < 2000000; j++) getppid(); - +\& pclock("Process total CPU time: ", CLOCK_PROCESS_CPUTIME_ID); - +\& s = pthread_getcpuclockid(pthread_self(), &cid); if (s != 0) handle_error_en(s, "pthread_getcpuclockid"); pclock("Main thread CPU time: ", cid); - +\& /* The preceding 4 lines of code could have been replaced by: pclock("Main thread CPU time: ", CLOCK_THREAD_CPUTIME_ID); */ - +\& s = pthread_getcpuclockid(thread, &cid); if (s != 0) handle_error_en(s, "pthread_getcpuclockid"); pclock("Subthread CPU time: 1 ", cid); - +\& exit(EXIT_SUCCESS); /* Terminates both threads */ } .EE |