4 int gLibSio_Uses_Me_To_Quiet_Variable_Unused_Warnings
= 0;
8 volatile Sjmp_buf gNetTimeoutJmp
;
9 volatile Sjmp_buf gPipeJmp
;
12 SIOHandler(int sigNum
)
14 if (sigNum
== SIGPIPE
)
15 SLongjmp(gPipeJmp
, 1);
16 SLongjmp(gNetTimeoutJmp
, 1);
22 void (*SSignal(int signum
, void (*handler
)(int)))(int)
25 struct sigaction sa
, osa
;
27 (void) sigemptyset(&sa
.sa_mask
);
29 sa
.sa_handler
= handler
;
30 if (signum
== SIGALRM
) {
32 sa
.sa_flags
|= SA_INTERRUPT
;
36 sa
.sa_flags
|= SA_RESTART
;
39 if (sigaction(signum
, &sa
, &osa
) < 0)
41 return (osa
.sa_handler
);
43 return SSignal(signum
, handler
);
44 #endif /* HAVE_SIGACTION */
47 #endif /* NO_SIGNALS */