comparison src/syssignal.h @ 380:8626e4521993 r21-2-5

Import from CVS: tag r21-2-5
author cvs
date Mon, 13 Aug 2007 11:07:10 +0200
parents cc15677e0335
children 74fd4e045ea6
comparison
equal deleted inserted replaced
379:76b7d63099ad 380:8626e4521993
110 #undef signal 110 #undef signal
111 #define signal sys_do_signal 111 #define signal sys_do_signal
112 112
113 #define EMACS_BLOCK_SIGNAL(sig) do \ 113 #define EMACS_BLOCK_SIGNAL(sig) do \
114 { \ 114 { \
115 sigset_t _mask; \ 115 sigset_t ES_mask; \
116 sigemptyset (&_mask); \ 116 sigemptyset (&ES_mask); \
117 sigaddset (&_mask, sig); \ 117 sigaddset (&ES_mask, sig); \
118 sigprocmask (SIG_BLOCK, &_mask, NULL); \ 118 sigprocmask (SIG_BLOCK, &ES_mask, NULL); \
119 } while (0) 119 } while (0)
120 #define EMACS_UNBLOCK_SIGNAL(sig) do \ 120 #define EMACS_UNBLOCK_SIGNAL(sig) do \
121 { \ 121 { \
122 sigset_t _mask; \ 122 sigset_t ES_mask; \
123 sigemptyset (&_mask); \ 123 sigemptyset (&ES_mask); \
124 sigaddset (&_mask, sig); \ 124 sigaddset (&ES_mask, sig); \
125 sigprocmask (SIG_UNBLOCK, &_mask, NULL); \ 125 sigprocmask (SIG_UNBLOCK, &ES_mask, NULL); \
126 } while (0) 126 } while (0)
127 #define EMACS_UNBLOCK_ALL_SIGNALS() do \ 127 #define EMACS_UNBLOCK_ALL_SIGNALS() do \
128 { \ 128 { \
129 sigset_t _mask; \ 129 sigset_t ES_mask; \
130 sigemptyset (&_mask); \ 130 sigemptyset (&ES_mask); \
131 sigprocmask (SIG_SETMASK, &_mask, NULL); \ 131 sigprocmask (SIG_SETMASK, &ES_mask, NULL); \
132 } while (0) 132 } while (0)
133 #define EMACS_WAIT_FOR_SIGNAL(sig) do \ 133 #define EMACS_WAIT_FOR_SIGNAL(sig) do \
134 { \ 134 { \
135 sigset_t _mask; \ 135 sigset_t ES_mask; \
136 sigprocmask (0, NULL, &_mask); \ 136 sigprocmask (0, NULL, &ES_mask); \
137 sigdelset (&_mask, sig); \ 137 sigdelset (&ES_mask, sig); \
138 sigsuspend (&_mask); \ 138 sigsuspend (&ES_mask); \
139 } while (0) 139 } while (0)
140 #define EMACS_REESTABLISH_SIGNAL(sig, handler) 140 #define EMACS_REESTABLISH_SIGNAL(sig, handler)
141 141
142 #elif defined (HAVE_SIGBLOCK) 142 #elif defined (HAVE_SIGBLOCK)
143 143
157 #define EMACS_BLOCK_SIGNAL(sig) sigblock (sigmask (sig)) 157 #define EMACS_BLOCK_SIGNAL(sig) sigblock (sigmask (sig))
158 #define EMACS_UNBLOCK_SIGNAL(sig) sigsetmask (sigblock (0) & ~sigmask (sig)) 158 #define EMACS_UNBLOCK_SIGNAL(sig) sigsetmask (sigblock (0) & ~sigmask (sig))
159 #define EMACS_UNBLOCK_ALL_SIGNALS() sigsetmask (0) 159 #define EMACS_UNBLOCK_ALL_SIGNALS() sigsetmask (0)
160 #define EMACS_WAIT_FOR_SIGNAL(sig) do \ 160 #define EMACS_WAIT_FOR_SIGNAL(sig) do \
161 { \ 161 { \
162 int _mask = sigblock (0); \ 162 int ES_mask = sigblock (0); \
163 sigpause (_mask & ~sigmask (sig)); \ 163 sigpause (ES_mask & ~sigmask (sig)); \
164 } while (0) 164 } while (0)
165 #define EMACS_REESTABLISH_SIGNAL(sig, handler) 165 #define EMACS_REESTABLISH_SIGNAL(sig, handler)
166 166
167 #elif defined (HAVE_SIGHOLD) 167 #elif defined (HAVE_SIGHOLD)
168 168