mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
improve signal globals consistency check for TS
Seems when we receive TERM, TLS is destroyed completely. In that case, not only signal globals, but the entire globals array doesn't exist anymore.
This commit is contained in:
parent
c7b2c698d0
commit
18f7e26257
@ -79,7 +79,7 @@ void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context)
|
||||
#ifdef ZTS
|
||||
ZEND_TSRMLS_CACHE_UPDATE();
|
||||
/* A signal could hit after TSRM shutdown, in this case globals are already freed. */
|
||||
if (NULL == TSRMG_BULK_STATIC(zend_signal_globals_id, zend_signal_globals_t *)) {
|
||||
if (NULL == TSRMLS_CACHE || NULL == TSRMG_BULK_STATIC(zend_signal_globals_id, zend_signal_globals_t *)) {
|
||||
is_handling_safe = 0;
|
||||
}
|
||||
#endif
|
||||
@ -169,7 +169,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 == TSRMG_BULK_STATIC(zend_signal_globals_id, zend_signal_globals_t *)) {
|
||||
if (NULL == TSRMLS_CACHE || NULL == TSRMG_BULK_STATIC(zend_signal_globals_id, zend_signal_globals_t *)) {
|
||||
p_sig.flags = 0;
|
||||
p_sig.handler = SIG_DFL;
|
||||
} else
|
||||
|
Loading…
Reference in New Issue
Block a user