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 int zend_signal_register(int signo, void (*handler)(int, siginfo_t*, void*));
83 void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context) in zend_signal_handler_defer() argument
104 zend_signal_handler(signo, siginfo, context); in zend_signal_handler_defer()
110 …zend_signal_handler(queue->zend_signal.signo, queue->zend_signal.siginfo, queue->zend_signal.conte… in zend_signal_handler_defer()
113 queue->zend_signal.signo = 0; in zend_signal_handler_defer()
124 queue->zend_signal.signo = signo; in zend_signal_handler_defer()
138 zend_output_debug_string(0, "zend_signal: not enough queue storage, lost signal (%d)", signo); in zend_signal_handler_defer()
144 zend_signal_handler(signo, siginfo, context); in zend_signal_handler_defer()
163 queue->zend_signal.signo = 0; in zend_signal_handler_unblock()
166 zend_signal_handler_defer(zend_signal.signo, zend_signal.siginfo, zend_signal.context); in zend_signal_handler_unblock()
175 static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context) in zend_signal_handler() argument
187 p_sig = SIGG(handlers)[signo-1]; in zend_signal_handler()
190 if (sigaction(signo, NULL, &sa) == 0) { in zend_signal_handler()
195 sigaddset(&sigset, signo); in zend_signal_handler()
197 if (sigaction(signo, &sa, NULL) == 0) { in zend_signal_handler()
202 if (raise(signo) != 0) { in zend_signal_handler()
204 kill(getpid(), signo); in zend_signal_handler()
207 kill(getpid(), signo); in zend_signal_handler()
214 SIGG(handlers)[signo-1].flags = 0; in zend_signal_handler()
215 SIGG(handlers)[signo-1].handler = SIG_DFL; in zend_signal_handler()
217 (*(void (*)(int, siginfo_t*, void*))p_sig.handler)(signo, siginfo, context); in zend_signal_handler()
219 (*(void (*)(int))p_sig.handler)(signo); in zend_signal_handler()
228 ZEND_API int zend_sigaction(int signo, const struct sigaction *act, struct sigaction *oldact) in zend_sigaction() argument
234 oldact->sa_flags = SIGG(handlers)[signo-1].flags; in zend_sigaction()
235 oldact->sa_handler = (void *) SIGG(handlers)[signo-1].handler; in zend_sigaction()
239 SIGG(handlers)[signo-1].flags = act->sa_flags; in zend_sigaction()
241 SIGG(handlers)[signo-1].handler = (void *) act->sa_sigaction; in zend_sigaction()
243 SIGG(handlers)[signo-1].handler = (void *) act->sa_handler; in zend_sigaction()
247 if (SIGG(handlers)[signo-1].handler == (void *) SIG_IGN) { in zend_sigaction()
255 if (sigaction(signo, &sa, NULL) < 0) { in zend_sigaction()
256 zend_error_noreturn(E_ERROR, "Error installing signal handler for %d", signo); in zend_sigaction()
261 sigaddset(&sigset, signo); in zend_sigaction()
271 ZEND_API int zend_signal(int signo, void (*handler)(int)) in zend_signal() argument
280 return zend_sigaction(signo, &sa, NULL); in zend_signal()
288 static int 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()
382 queue->zend_signal.signo = 0; in zend_signal_globals_ctor()
391 int signo; in zend_signal_init() local
396 for (signo = 1; signo < NSIG; ++signo) { in zend_signal_init()
397 if (sigaction(signo, NULL, &sa) == 0) { in zend_signal_init()
398 global_orig_handlers[signo-1].flags = sa.sa_flags; in zend_signal_init()
400 global_orig_handlers[signo-1].handler = (void *) sa.sa_sigaction; in zend_signal_init()
402 global_orig_handlers[signo-1].handler = (void *) sa.sa_handler; in zend_signal_init()