Lines Matching refs:signo

59 # define zend_sigprocmask(signo, set, oldset) tsrm_sigmask((signo), (set), (oldset))  argument
61 # define zend_sigprocmask(signo, set, oldset) sigprocmask((signo), (set), (oldset)) argument
64 static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context);
65 static zend_result zend_signal_register(int signo, void (*handler)(int, siginfo_t*, void*));
84 static void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context) in zend_signal_handler_defer() argument
95 zend_signal_handler(signo, siginfo, context); in zend_signal_handler_defer()
107 zend_signal_handler(signo, siginfo, context); in zend_signal_handler_defer()
113 …zend_signal_handler(queue->zend_signal.signo, queue->zend_signal.siginfo, queue->zend_signal.conte… in zend_signal_handler_defer()
116 queue->zend_signal.signo = 0; in zend_signal_handler_defer()
127 queue->zend_signal.signo = signo; in zend_signal_handler_defer()
141 zend_output_debug_string(0, "zend_signal: not enough queue storage, lost signal (%d)", signo); in zend_signal_handler_defer()
147 zend_signal_handler(signo, siginfo, context); in zend_signal_handler_defer()
166 queue->zend_signal.signo = 0; in zend_signal_handler_unblock()
169 zend_signal_handler_defer(zend_signal.signo, zend_signal.siginfo, zend_signal.context); in zend_signal_handler_unblock()
178 static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context) in zend_signal_handler() argument
186 p_sig = global_orig_handlers[signo-1]; in zend_signal_handler()
189 p_sig = SIGG(handlers)[signo-1]; in zend_signal_handler()
192 if (sigaction(signo, NULL, &sa) == 0) { in zend_signal_handler()
197 sigaddset(&sigset, signo); in zend_signal_handler()
199 if (sigaction(signo, &sa, NULL) == 0) { in zend_signal_handler()
204 if (raise(signo) != 0) { in zend_signal_handler()
206 kill(getpid(), signo); in zend_signal_handler()
209 kill(getpid(), signo); in zend_signal_handler()
216 SIGG(handlers)[signo-1].flags = 0; in zend_signal_handler()
217 SIGG(handlers)[signo-1].handler = SIG_DFL; in zend_signal_handler()
219 (*(void (*)(int, siginfo_t*, void*))p_sig.handler)(signo, siginfo, context); in zend_signal_handler()
221 (*(void (*)(int))p_sig.handler)(signo); in zend_signal_handler()
230 ZEND_API void zend_sigaction(int signo, const struct sigaction *act, struct sigaction *oldact) in zend_sigaction() argument
236 oldact->sa_flags = SIGG(handlers)[signo-1].flags; in zend_sigaction()
237 oldact->sa_handler = (void *) SIGG(handlers)[signo-1].handler; in zend_sigaction()
241 SIGG(handlers)[signo-1].flags = act->sa_flags; in zend_sigaction()
243 SIGG(handlers)[signo-1].handler = (void *) act->sa_sigaction; in zend_sigaction()
245 SIGG(handlers)[signo-1].handler = (void *) act->sa_handler; in zend_sigaction()
249 if (SIGG(handlers)[signo-1].handler == (void *) SIG_IGN) { in zend_sigaction()
257 if (sigaction(signo, &sa, NULL) < 0) { in zend_sigaction()
258 zend_error_noreturn(E_ERROR, "Error installing signal handler for %d", signo); in zend_sigaction()
263 sigaddset(&sigset, signo); in zend_sigaction()
271 ZEND_API void zend_signal(int signo, void (*handler)(int)) in zend_signal() argument
280 zend_sigaction(signo, &sa, NULL); in zend_signal()
288 static zend_result zend_signal_register(int signo, void (*handler)(int, siginfo_t*, void*)) in zend_signal_register() argument
292 if (sigaction(signo, NULL, &sa) == 0) { in zend_signal_register()
297 SIGG(handlers)[signo-1].flags = sa.sa_flags; in zend_signal_register()
299 SIGG(handlers)[signo-1].handler = (void *)sa.sa_sigaction; in zend_signal_register()
301 SIGG(handlers)[signo-1].handler = (void *)sa.sa_handler; in zend_signal_register()
308 if (sigaction(signo, &sa, NULL) < 0) { in zend_signal_register()
309 zend_error_noreturn(E_ERROR, "Error installing signal handler for %d", signo); in zend_signal_register()
383 queue->zend_signal.signo = 0; in zend_signal_globals_ctor()
392 int signo; in zend_signal_init() local
397 for (signo = 1; signo < NSIG; ++signo) { in zend_signal_init()
398 if (sigaction(signo, NULL, &sa) == 0) { in zend_signal_init()
399 global_orig_handlers[signo-1].flags = sa.sa_flags; in zend_signal_init()
401 global_orig_handlers[signo-1].handler = (void *) sa.sa_sigaction; in zend_signal_init()
403 global_orig_handlers[signo-1].handler = (void *) sa.sa_handler; in zend_signal_init()