summaryrefslogtreecommitdiff
path: root/Zend/zend_signal.c
diff options
context:
space:
mode:
authorJoe Watkins <krakjoe@php.net>2019-06-26 13:18:50 +0200
committerJoe Watkins <krakjoe@php.net>2019-06-28 10:27:19 +0200
commit68485f8ab4df0e1b3e4f446006ce25b6be358975 (patch)
treec4b9011936860d33810039a4f95b48d9bc77420d /Zend/zend_signal.c
parentbc0db8ce453aab34941cfe510833d218e50fcae4 (diff)
downloadphp-git-68485f8ab4df0e1b3e4f446006ce25b6be358975.tar.gz
implement tsrm_is_shutdown API
Diffstat (limited to 'Zend/zend_signal.c')
-rw-r--r--Zend/zend_signal.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c
index 3e9fd227ac..703097eeb5 100644
--- a/Zend/zend_signal.c
+++ b/Zend/zend_signal.c
@@ -82,16 +82,17 @@ void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context)
{
int errno_save = errno;
zend_signal_queue_t *queue, *qtmp;
- zend_bool is_handling_safe = 1;
#ifdef ZTS
/* A signal could hit after TSRM shutdown, in this case globals are already freed. */
- if (NULL == TSRMLS_CACHE || NULL == TSRMG_BULK_STATIC(zend_signal_globals_id, zend_signal_globals_t *)) {
- is_handling_safe = 0;
+ if (tsrm_is_shutdown()) {
+ /* Forward to default handler handler */
+ zend_signal_handler(signo, siginfo, context);
+ return;
}
#endif
- if (EXPECTED(is_handling_safe && SIGG(active))) {
+ if (EXPECTED(SIGG(active))) {
if (UNEXPECTED(SIGG(depth) == 0)) { /* try to handle signal */
if (UNEXPECTED(SIGG(blocked))) {
SIGG(blocked) = 0;
@@ -176,7 +177,7 @@ static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context)
sigset_t sigset;
zend_signal_entry_t p_sig;
#ifdef ZTS
- if (NULL == TSRMLS_CACHE || NULL == TSRMG_BULK_STATIC(zend_signal_globals_id, zend_signal_globals_t *)) {
+ if (tsrm_is_shutdown()) {
p_sig.flags = 0;
p_sig.handler = SIG_DFL;
} else