@@ -151,32 +151,44 @@ void php_register_signal_constants(INIT_FUNC_ARGS)
151
151
REGISTER_LONG_CONSTANT ("SIGSYS" , (long ) SIGSYS , CONST_CS | CONST_PERSISTENT );
152
152
}
153
153
154
- PHP_MINIT_FUNCTION ( pcntl )
154
+ static void php_pcntl_init_globals ( zend_pcntl_globals * pcntl_globals )
155
155
{
156
- PCNTL_LS_FETCH ();
157
-
158
- php_register_signal_constants (INIT_FUNC_ARGS_PASSTHRU );
159
- zend_hash_init (& PCNTL_G (php_signal_table ), 16 , NULL , NULL , 1 );
156
+ zend_hash_init (& pcntl_globals -> php_signal_table , 16 , NULL , NULL , 1 );
160
157
161
158
/* Just in case ... */
162
- memset (& PCNTL_G ( php_signal_queue ) ,0 ,sizeof (PCNTL_G ( php_signal_queue ) ));
159
+ memset (& pcntl_globals -> php_signal_queue ,0 ,sizeof (pcntl_globals -> php_signal_queue ));
163
160
164
- zend_llist_init (& PCNTL_G (php_signal_queue ), sizeof (long ), NULL , 1 );
165
- PCNTL_G (signal_queue_ready )= 0 ;
166
- PCNTL_G (processing_signal_queue )= 0 ;
161
+ zend_llist_init (& pcntl_globals -> php_signal_queue , sizeof (long ), NULL , 1 );
162
+ pcntl_globals -> signal_queue_ready = 0 ;
163
+ pcntl_globals -> processing_signal_queue = 0 ;
164
+ }
165
+
166
+ static void php_pcntl_shutdown_globals (zend_pcntl_globals * pcntl_globals )
167
+ {
168
+ zend_hash_destroy (& pcntl_globals -> php_signal_table );
169
+ zend_llist_destroy (& pcntl_globals -> php_signal_queue );
170
+ }
171
+
172
+ PHP_MINIT_FUNCTION (pcntl )
173
+ {
174
+ php_register_signal_constants (INIT_FUNC_ARGS_PASSTHRU );
175
+ ZEND_INIT_MODULE_GLOBALS (pcntl , php_pcntl_init_globals , php_pcntl_shutdown_globals );
167
176
if (zend_register_extension (& pcntl_extension_entry , 0 )== FAILURE )
168
177
return FAILURE ;
169
178
return SUCCESS ;
170
179
}
180
+
171
181
PHP_MSHUTDOWN_FUNCTION (pcntl )
172
182
{
173
- PCNTL_LS_FETCH ();
174
-
183
+
175
184
zend_hash_destroy (& PCNTL_G (php_signal_table ));
176
185
zend_llist_destroy (& PCNTL_G (php_signal_queue ));
177
186
return SUCCESS ;
178
187
}
179
188
189
+
190
+
191
+
180
192
PHP_MINFO_FUNCTION (pcntl )
181
193
{
182
194
php_info_print_table_start ();
@@ -355,7 +367,6 @@ PHP_FUNCTION(pcntl_signal)
355
367
{
356
368
zval * * signo , * * handle ;
357
369
char * func_name ;
358
- PCNTL_LS_FETCH ();
359
370
360
371
if (ZEND_NUM_ARGS () != 2 || zend_get_parameters_ex (2 , & signo , & handle ) == FAILURE ) {
361
372
WRONG_PARAM_COUNT ;
@@ -404,10 +415,9 @@ static void old_pcntl_signal_handler(int signo)
404
415
{
405
416
char * func_name ;
406
417
zval * param , * call_name , * retval ;
407
- PCNTL_LS_FETCH ();
408
418
TSRMLS_FETCH ();
409
419
410
- DEBUG_OUT ("Caught signal: %d\n" , signo );
420
+ DEBUG_OUT ("Caught signal: %d\n" , signo );
411
421
if (zend_hash_index_find (& PCNTL_G (php_signal_table ), (long ) signo , (void * ) & func_name )== FAILURE ) {
412
422
DEBUG_OUT ("Signl handler not fount" );
413
423
return ;
@@ -434,7 +444,7 @@ static void old_pcntl_signal_handler(int signo)
434
444
static void pcntl_signal_handler (int signo )
435
445
{
436
446
long signal_num = signo ;
437
- PCNTL_LS_FETCH ();
447
+ TSRMLS_FETCH ();
438
448
439
449
DEBUG_OUT ("Caught signo %d\n" , signo );
440
450
if (! PCNTL_G (processing_signal_queue ) && pcntl_zend_extension_active ) {
@@ -450,6 +460,8 @@ static void pcntl_signal_handler(int signo)
450
460
451
461
int pcntl_zend_extension_startup (zend_extension * extension )
452
462
{
463
+ TSRMLS_FETCH ();
464
+
453
465
DEBUG_OUT ("Statup Called\n" );
454
466
pcntl_zend_extension_active = 1 ;
455
467
CG (extended_info ) = 1 ;
@@ -464,6 +476,8 @@ void pcntl_zend_extension_shutdown(zend_extension *extension)
464
476
465
477
void pcntl_zend_extension_activate (void )
466
478
{
479
+ TSRMLS_FETCH ();
480
+
467
481
DEBUG_OUT ("Activate Called\n" );
468
482
pcntl_zend_extension_active = 1 ;
469
483
CG (extended_info ) = 1 ;
@@ -483,7 +497,6 @@ void pcntl_zend_extension_statement_handler(zend_op_array *op_array)
483
497
zend_llist_element * element ;
484
498
zval * param , * call_name , * retval ;
485
499
char * func_name ;
486
- PCNTL_LS_FETCH ();
487
500
TSRMLS_FETCH ();
488
501
489
502
/* Bail if the queue is empty or if we are already playing the queue*/
0 commit comments