mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Added possiblity to avoid signal handlers reinitialization on each request.
This commit is contained in:
parent
8bda22592e
commit
53ea09e84d
2 changed files with 6 additions and 2 deletions
|
@ -322,8 +322,10 @@ void zend_signal_activate(void)
|
|||
|
||||
memcpy(&SIGG(handlers), &global_orig_handlers, sizeof(global_orig_handlers));
|
||||
|
||||
for (x = 0; x < sizeof(zend_sigs) / sizeof(*zend_sigs); x++) {
|
||||
zend_signal_register(zend_sigs[x], zend_signal_handler_defer);
|
||||
if (SIGG(reset)) {
|
||||
for (x = 0; x < sizeof(zend_sigs) / sizeof(*zend_sigs); x++) {
|
||||
zend_signal_register(zend_sigs[x], zend_signal_handler_defer);
|
||||
}
|
||||
}
|
||||
|
||||
SIGG(active) = 1;
|
||||
|
@ -365,6 +367,7 @@ static void zend_signal_globals_ctor(zend_signal_globals_t *zend_signal_globals)
|
|||
size_t x;
|
||||
|
||||
memset(zend_signal_globals, 0, sizeof(*zend_signal_globals));
|
||||
zend_signal_globals->reset = 1;
|
||||
|
||||
for (x = 0; x < sizeof(zend_signal_globals->pstorage) / sizeof(*zend_signal_globals->pstorage); ++x) {
|
||||
zend_signal_queue_t *queue = &zend_signal_globals->pstorage[x];
|
||||
|
|
|
@ -59,6 +59,7 @@ typedef struct _zend_signal_globals_t {
|
|||
int running; /* in signal handler execution */
|
||||
int active; /* internal signal handling is enabled */
|
||||
zend_bool check; /* check for replaced handlers on shutdown */
|
||||
zend_bool reset; /* reset signal handlers on each request */
|
||||
zend_signal_entry_t handlers[NSIG];
|
||||
zend_signal_queue_t pstorage[ZEND_SIGNAL_QUEUE_SIZE], *phead, *ptail, *pavail; /* pending queue */
|
||||
} zend_signal_globals_t;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue