diff options
| author | Joe Watkins <krakjoe@php.net> | 2019-06-26 13:18:50 +0200 |
|---|---|---|
| committer | Joe Watkins <krakjoe@php.net> | 2019-06-28 10:27:19 +0200 |
| commit | 68485f8ab4df0e1b3e4f446006ce25b6be358975 (patch) | |
| tree | c4b9011936860d33810039a4f95b48d9bc77420d /Zend/zend_signal.c | |
| parent | bc0db8ce453aab34941cfe510833d218e50fcae4 (diff) | |
| download | php-git-68485f8ab4df0e1b3e4f446006ce25b6be358975.tar.gz | |
implement tsrm_is_shutdown API
Diffstat (limited to 'Zend/zend_signal.c')
| -rw-r--r-- | Zend/zend_signal.c | 11 |
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 |
