Lines Matching refs:signo

54 static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context TSRMLS_DC);
55 static int zend_signal_register(int signo, void (*handler)(int, siginfo_t*, void*) TSRMLS_DC);
73 void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context) in zend_signal_handler_defer() argument
86 zend_signal_handler(signo, siginfo, context TSRMLS_CC); in zend_signal_handler_defer()
92 …zend_signal_handler(queue->zend_signal.signo, queue->zend_signal.siginfo, queue->zend_signal.conte… in zend_signal_handler_defer()
95 queue->zend_signal.signo = 0; in zend_signal_handler_defer()
106 queue->zend_signal.signo = signo; in zend_signal_handler_defer()
120 zend_output_debug_string(0, "zend_signal: not enough queue storage, lost signal (%d)", signo); in zend_signal_handler_defer()
126 zend_signal_handler(signo, siginfo, context TSRMLS_CC); in zend_signal_handler_defer()
145 queue->zend_signal.signo = 0; in zend_signal_handler_unblock()
148 zend_signal_handler_defer(zend_signal.signo, zend_signal.siginfo, zend_signal.context); in zend_signal_handler_unblock()
157 static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context TSRMLS_DC) in zend_signal_handler() argument
162 zend_signal_entry_t p_sig = SIGG(handlers)[signo-1]; in zend_signal_handler()
165 if (sigaction(signo, NULL, &sa) == 0) { in zend_signal_handler()
170 sigaddset(&sigset, signo); in zend_signal_handler()
172 if (sigaction(signo, &sa, NULL) == 0) { in zend_signal_handler()
175 raise(signo); in zend_signal_handler()
181 SIGG(handlers)[signo-1].flags = 0; in zend_signal_handler()
182 SIGG(handlers)[signo-1].handler = SIG_DFL; in zend_signal_handler()
184 (*(void (*)(int, siginfo_t*, void*))p_sig.handler)(signo, siginfo, context); in zend_signal_handler()
186 (*(void (*)(int))p_sig.handler)(signo); in zend_signal_handler()
195 ZEND_API int zend_sigaction(int signo, const struct sigaction *act, struct sigaction *oldact TSRMLS… in zend_sigaction() argument
201 oldact->sa_flags = SIGG(handlers)[signo-1].flags; in zend_sigaction()
202 oldact->sa_handler = (void *) SIGG(handlers)[signo-1].handler; in zend_sigaction()
206 SIGG(handlers)[signo-1].flags = act->sa_flags; in zend_sigaction()
208 SIGG(handlers)[signo-1].handler = (void *) act->sa_sigaction; in zend_sigaction()
210 SIGG(handlers)[signo-1].handler = (void *) act->sa_handler; in zend_sigaction()
217 if (sigaction(signo, &sa, NULL) < 0) { in zend_sigaction()
218 zend_error(E_ERROR, "Error installing signal handler for %d", signo); in zend_sigaction()
223 sigaddset(&sigset, signo); in zend_sigaction()
233 ZEND_API int zend_signal(int signo, void (*handler)(int) TSRMLS_DC) in zend_signal() argument
241 return zend_sigaction(signo, &sa, NULL TSRMLS_CC); in zend_signal()
249 static int zend_signal_register(int signo, void (*handler)(int, siginfo_t*, void*) TSRMLS_DC) in zend_signal_register() argument
253 if (sigaction(signo, NULL, &sa) == 0) { in zend_signal_register()
258 SIGG(handlers)[signo-1].flags = sa.sa_flags; in zend_signal_register()
260 SIGG(handlers)[signo-1].handler = (void *)sa.sa_sigaction; in zend_signal_register()
262 SIGG(handlers)[signo-1].handler = (void *)sa.sa_handler; in zend_signal_register()
269 if (sigaction(signo, &sa, NULL) < 0) { in zend_signal_register()
270 zend_error(E_ERROR, "Error installing signal handler for %d", signo); in zend_signal_register()
332 queue->zend_signal.signo = 0; in zend_signal_globals_ctor()
347 int signo; in zend_signal_startup() local
380 for (signo = 1; signo < NSIG; ++signo) { in zend_signal_startup()
381 if (sigaction(signo, NULL, &sa) == 0) { in zend_signal_startup()
382 global_orig_handlers[signo-1].flags = sa.sa_flags; in zend_signal_startup()
384 global_orig_handlers[signo-1].handler = (void *) sa.sa_sigaction; in zend_signal_startup()
386 global_orig_handlers[signo-1].handler = (void *) sa.sa_handler; in zend_signal_startup()