tst.sigwait.c (178529) | tst.sigwait.c (178534) |
---|---|
1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 19 unchanged lines hidden (view full) --- 28 29#include <signal.h> 30#include <time.h> 31#include <stdlib.h> 32#include <stdio.h> 33#include <errno.h> 34#include <string.h> 35 | 1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 19 unchanged lines hidden (view full) --- 28 29#include <signal.h> 30#include <time.h> 31#include <stdlib.h> 32#include <stdio.h> 33#include <errno.h> 34#include <string.h> 35 |
36#define NANOSEC 1000000000 37 |
|
36int 37main(int argc, char **argv) 38{ 39 struct sigevent ev; 40 struct itimerspec ts; 41 sigset_t set; 42 timer_t tid; 43 char *cmd = argv[0]; | 38int 39main(int argc, char **argv) 40{ 41 struct sigevent ev; 42 struct itimerspec ts; 43 sigset_t set; 44 timer_t tid; 45 char *cmd = argv[0]; |
46 int sig; |
|
44 45 ev.sigev_notify = SIGEV_SIGNAL; 46 ev.sigev_signo = SIGUSR1; 47 48 if (timer_create(CLOCK_REALTIME, &ev, &tid) == -1) { 49 (void) fprintf(stderr, "%s: cannot create CLOCK_HIGHRES " 50 "timer: %s\n", cmd, strerror(errno)); 51 exit(EXIT_FAILURE); --- 9 unchanged lines hidden (view full) --- 61 ts.it_interval.tv_nsec = NANOSEC / 2; 62 63 if (timer_settime(tid, TIMER_RELTIME, &ts, NULL) == -1) { 64 (void) fprintf(stderr, "%s: timer_settime() failed: %s\n", 65 cmd, strerror(errno)); 66 exit(EXIT_FAILURE); 67 } 68 | 47 48 ev.sigev_notify = SIGEV_SIGNAL; 49 ev.sigev_signo = SIGUSR1; 50 51 if (timer_create(CLOCK_REALTIME, &ev, &tid) == -1) { 52 (void) fprintf(stderr, "%s: cannot create CLOCK_HIGHRES " 53 "timer: %s\n", cmd, strerror(errno)); 54 exit(EXIT_FAILURE); --- 9 unchanged lines hidden (view full) --- 64 ts.it_interval.tv_nsec = NANOSEC / 2; 65 66 if (timer_settime(tid, TIMER_RELTIME, &ts, NULL) == -1) { 67 (void) fprintf(stderr, "%s: timer_settime() failed: %s\n", 68 cmd, strerror(errno)); 69 exit(EXIT_FAILURE); 70 } 71 |
69 for (;;) { 70 (void) sigwait(&set); 71 } | 72 do { 73 (void) sigwait(&set, &sig); 74 } while(sig != SIGUSR1); |
72 73 /*NOTREACHED*/ 74 return (0); 75} | 75 76 /*NOTREACHED*/ 77 return (0); 78} |