Skip to content

Instantly share code, notes, and snippets.

@dstogov
Created August 8, 2019 12:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dstogov/e6004f0a3a718baad7f1b1968e81191d to your computer and use it in GitHub Desktop.
Save dstogov/e6004f0a3a718baad7f1b1968e81191d to your computer and use it in GitHub Desktop.
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 9f10843b6b..c510ef7d53 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -1165,6 +1165,7 @@ ZEND_API ZEND_NORETURN void zend_timeout(int dummy) /* {{{ */
#ifndef ZEND_WIN32
static void zend_timeout_handler(int dummy) /* {{{ */
{
+ zend_error(E_NOTICE, "Timeout signal [%d] delivered", dummy);
#ifndef ZTS
if (EG(timed_out)) {
/* Die on hard timeout */
@@ -1212,6 +1213,7 @@ static void zend_timeout_handler(int dummy) /* {{{ */
EG(timed_out) = 1;
EG(vm_interrupt) = 1;
+ zend_error(E_NOTICE, "Interrupt flag set");
#ifndef ZTS
if (EG(hard_timeout) > 0) {
diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c
index f43de50b64..f7d3cee1bf 100644
--- a/Zend/zend_signal.c
+++ b/Zend/zend_signal.c
@@ -96,6 +96,7 @@ void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context)
}
#endif
+ zend_error(E_NOTICE, "Got Signal [%d]", signo);
if (EXPECTED(is_handling_safe && SIGG(active))) {
if (UNEXPECTED(SIGG(depth) == 0)) { /* try to handle signal */
if (UNEXPECTED(SIGG(blocked))) {
@@ -186,6 +187,7 @@ static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context)
p_sig.handler = SIG_DFL;
} else
#endif
+ zend_error(E_NOTICE, "Pass Signal [%d]", signo);
p_sig = SIGG(handlers)[signo-1];
if (p_sig.handler == SIG_DFL) { /* raise default handler */
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index c111f4d893..20a725dcb0 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -2071,8 +2071,10 @@ call_trampoline_end:
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_interrupt_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
{
+ zend_error(E_NOTICE, "Interrupt");
EG(vm_interrupt) = 0;
if (EG(timed_out)) {
+ zend_error(E_NOTICE, "Timeout");
zend_timeout(0);
} else if (zend_interrupt_function) {
SAVE_OPLINE();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment