comparison src/syssignal.h @ 109636:2d3e59e887ac

Cleanup syssignal.h. * src/syssignal.h (sighold, sigrelse, RETSIGTYPE): Remove, unused. (main_thread): Move down to remove #ifdef. (SIGMASKTYPE, SIGEMPTYMASK, SIGFULLMASK, sigmask, sigunblock): Remove conditional definition following unconditional ones.
author Dan Nicolaescu <dann@ics.uci.edu>
date Thu, 05 Aug 2010 16:22:18 -0700
parents 68ca98ae70fb
children e04aa89bb748
comparison
equal deleted inserted replaced
109635:fc7a8c411aa3 109636:2d3e59e887ac
22 #if defined (HAVE_GTK_AND_PTHREAD) || defined (HAVE_NS) 22 #if defined (HAVE_GTK_AND_PTHREAD) || defined (HAVE_NS)
23 #include <pthread.h> 23 #include <pthread.h>
24 /* If defined, asynchronous signals delivered to a non-main thread are 24 /* If defined, asynchronous signals delivered to a non-main thread are
25 forwarded to the main thread. */ 25 forwarded to the main thread. */
26 #define FORWARD_SIGNAL_TO_MAIN_THREAD 26 #define FORWARD_SIGNAL_TO_MAIN_THREAD
27 #endif
28
29 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
30 extern pthread_t main_thread;
31 #endif 27 #endif
32 28
33 /* Don't #include <signal.h>. That header should always be #included 29 /* Don't #include <signal.h>. That header should always be #included
34 before "config.h", because some configuration files (like s/hpux.h) 30 before "config.h", because some configuration files (like s/hpux.h)
35 indicate that SIGIO doesn't work by #undef-ing SIGIO. If this file 31 indicate that SIGIO doesn't work by #undef-ing SIGIO. If this file
67 #define sigblock(SIG) sys_sigblock (SIG) 63 #define sigblock(SIG) sys_sigblock (SIG)
68 #define sigunblock(SIG) sys_sigunblock (SIG) 64 #define sigunblock(SIG) sys_sigunblock (SIG)
69 #ifndef sigsetmask 65 #ifndef sigsetmask
70 #define sigsetmask(SIG) sys_sigsetmask (SIG) 66 #define sigsetmask(SIG) sys_sigsetmask (SIG)
71 #endif 67 #endif
72 #define sighold(SIG) ONLY_USED_IN_BSD_4_1
73 #define sigrelse(SIG) ONLY_USED_IN_BSD_4_1
74 #undef signal 68 #undef signal
75 #define signal(SIG,ACT) sys_signal(SIG,ACT) 69 #define signal(SIG,ACT) sys_signal(SIG,ACT)
76
77 /* Whether this is what all systems want or not, this is what
78 appears to be assumed in the source, for example data.c:arith_error. */
79 typedef RETSIGTYPE (*signal_handler_t) (int);
80 70
81 signal_handler_t sys_signal (int signal_number, signal_handler_t action); 71 signal_handler_t sys_signal (int signal_number, signal_handler_t action);
82 sigset_t sys_sigblock (sigset_t new_mask); 72 sigset_t sys_sigblock (sigset_t new_mask);
83 sigset_t sys_sigunblock (sigset_t new_mask); 73 sigset_t sys_sigunblock (sigset_t new_mask);
84 sigset_t sys_sigsetmask (sigset_t new_mask); 74 sigset_t sys_sigsetmask (sigset_t new_mask);
85 75
86 #define sys_sigdel(MASK,SIG) sigdelset (&MASK,SIG) 76 #define sys_sigdel(MASK,SIG) sigdelset (&MASK,SIG)
87
88 #ifndef SIGMASKTYPE
89 #define SIGMASKTYPE int
90 #endif
91
92 #ifndef SIGEMPTYMASK
93 #define SIGEMPTYMASK (0)
94 #endif
95
96 #ifndef SIGFULLMASK
97 #define SIGFULLMASK (0xffffffff)
98 #endif
99
100 #ifndef sigmask
101 #define sigmask(no) (1L << ((no) - 1))
102 #endif
103
104 #ifndef sigunblock
105 #define sigunblock(SIG) \
106 { SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); }
107 #endif
108 77
109 #define sigfree() sigsetmask (SIGEMPTYMASK) 78 #define sigfree() sigsetmask (SIGEMPTYMASK)
110 79
111 #if defined (SIGINFO) && defined (BROKEN_SIGINFO) 80 #if defined (SIGINFO) && defined (BROKEN_SIGINFO)
112 #undef SIGINFO 81 #undef SIGINFO
162 /* strsignal is in sysdep.c */ 131 /* strsignal is in sysdep.c */
163 char *strsignal (int); 132 char *strsignal (int);
164 #endif 133 #endif
165 134
166 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD 135 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
136 extern pthread_t main_thread;
167 #define SIGNAL_THREAD_CHECK(signo) \ 137 #define SIGNAL_THREAD_CHECK(signo) \
168 do { \ 138 do { \
169 if (!pthread_equal (pthread_self (), main_thread)) \ 139 if (!pthread_equal (pthread_self (), main_thread)) \
170 { \ 140 { \
171 /* POSIX says any thread can receive the signal. On GNU/Linux \ 141 /* POSIX says any thread can receive the signal. On GNU/Linux \