9 #include "ntp_syslog.h"
10 #include "ntp_stdlib.h"
16 #if defined(__STDC__) || defined(HAVE_STDARG_H)
23 #if defined(__STDC__) || defined(HAVE_STDARG_H)
26 void (*func) P((int));
32 vec.sa_handler = func;
33 sigemptyset(&vec.sa_mask);
36 vec.sa_flags = SA_RESTART;
45 /* Added for PPS clocks on Solaris 7 which get EINTR errors */
47 if (sig == SIGPOLL) vec.sa_flags = SA_RESTART;
50 if (sig == SIGIO) vec.sa_flags = SA_RESTART;
56 struct sigaction ovec;
58 n = sigaction(sig, &vec, &ovec);
59 if (n == -1 && errno == EINTR) continue;
62 && ovec.sa_flags != SA_RESTART
65 msyslog(LOG_DEBUG, "signal_no_reset: signal %d had flags %x",
80 RETSIGTYPE (*func) (int)
86 bzero((char *) &sv, sizeof(sv));
88 n = sigvec(sig, &sv, (struct sigvec *)NULL);
100 RETSIGTYPE (*func) (int)
105 n = sigset(sig, func);
114 /* Beware! This implementation resets the signal to SIG_DFL */
118 RETSIGTYPE (*func) (int)
122 if (SIG_ERR == signal(sig, func)) {
125 n = signal(sig, func);