]> granicus.if.org Git - php/commitdiff
Eliminate the TSRMLS_FETCH() calls in the ticks functions and hook
authorKalle Sommer Nielsen <kalle@php.net>
Wed, 18 Dec 2013 08:32:26 +0000 (09:32 +0100)
committerKalle Sommer Nielsen <kalle@php.net>
Wed, 18 Dec 2013 08:32:26 +0000 (09:32 +0100)
Zend/zend.c
Zend/zend.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/pcntl/pcntl.c
ext/standard/basic_functions.c
main/php_ticks.c
main/php_ticks.h

index 33161f79e37eb549331546bd3016a098ad99f74b..ad45028d4be85d4b4b1919ccdea0b408b5cb76d4 100644 (file)
@@ -56,7 +56,7 @@ ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path TSRMLS_DC)
 ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC);
 ZEND_API void (*zend_block_interruptions)(void);
 ZEND_API void (*zend_unblock_interruptions)(void);
-ZEND_API void (*zend_ticks_function)(int ticks);
+ZEND_API void (*zend_ticks_function)(int ticks TSRMLS_DC);
 ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
 int (*zend_vspprintf)(char **pbuf, size_t max_len, const char *format, va_list ap);
 ZEND_API char *(*zend_getenv)(char *name, size_t name_len TSRMLS_DC);
index 30d05d2e00dc041598baf75d0dccef9b78f11449..f60ef687f61cf43db2e51c2cec738d134e361fc6 100644 (file)
@@ -550,7 +550,7 @@ typedef struct _zend_utility_functions {
        void (*block_interruptions)(void);
        void (*unblock_interruptions)(void);
        int (*get_configuration_directive)(const char *name, uint name_length, zval *contents);
-       void (*ticks_function)(int ticks);
+       void (*ticks_function)(int ticks TSRMLS_DC);
        void (*on_timeout)(int seconds TSRMLS_DC);
        int (*stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC);
        int (*vspprintf_function)(char **pbuf, size_t max_len, const char *format, va_list ap);
@@ -698,7 +698,7 @@ extern ZEND_API zend_write_func_t zend_write;
 extern ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path TSRMLS_DC);
 extern ZEND_API void (*zend_block_interruptions)(void);
 extern ZEND_API void (*zend_unblock_interruptions)(void);
-extern ZEND_API void (*zend_ticks_function)(int ticks);
+extern ZEND_API void (*zend_ticks_function)(int ticks TSRMLS_DC);
 extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 4, 0);
 extern ZEND_API void (*zend_on_timeout)(int seconds TSRMLS_DC);
 extern ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC);
index 97db4bbae0fdca246b959968b8d4dcfacfa75bd6..58a7b33a0a3e73d002f31d40ac655de9b7a6e02f 100644 (file)
@@ -4911,7 +4911,7 @@ ZEND_VM_HANDLER(105, ZEND_TICKS, ANY, ANY)
        if (++EG(ticks_count)>=opline->extended_value) {
                EG(ticks_count)=0;
                if (zend_ticks_function) {
-                       zend_ticks_function(opline->extended_value);
+                       zend_ticks_function(opline->extended_value TSRMLS_CC);
                }
        }
        CHECK_EXCEPTION();
index d76e62796acd815e5e4f8c17ea832b79dc36090a..24d6aadd69c4a66ac5be3a0b36eba98653086e1e 100644 (file)
@@ -954,7 +954,7 @@ static int ZEND_FASTCALL  ZEND_TICKS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
        if (++EG(ticks_count)>=opline->extended_value) {
                EG(ticks_count)=0;
                if (zend_ticks_function) {
-                       zend_ticks_function(opline->extended_value);
+                       zend_ticks_function(opline->extended_value TSRMLS_CC);
                }
        }
        CHECK_EXCEPTION();
index b66f4722e8108e7d87ed4eb996cc14f8b2d6dbdf..8dfb254cf9a440485c04e5c990485d5d8a82a469 100644 (file)
@@ -499,7 +499,7 @@ PHP_MINIT_FUNCTION(pcntl)
 {
        php_register_signal_constants(INIT_FUNC_ARGS_PASSTHRU);
        php_pcntl_register_errno_constants(INIT_FUNC_ARGS_PASSTHRU);
-       php_add_tick_function(pcntl_signal_dispatch);
+       php_add_tick_function(pcntl_signal_dispatch TSRMLS_CC);
 
        return SUCCESS;
 }
index f55925f315e8f96573fca992fdfa5e25cda6deb5..33f13649cc14695929fe0b49f0c0c8f5d7a5a9c7 100644 (file)
@@ -5751,7 +5751,7 @@ PHP_FUNCTION(register_tick_function)
                zend_llist_init(BG(user_tick_functions),
                                                sizeof(user_tick_function_entry),
                                                (llist_dtor_func_t) user_tick_function_dtor, 0);
-               php_add_tick_function(run_user_tick_functions);
+               php_add_tick_function(run_user_tick_functions TSRMLS_CC);
        }
 
        for (i = 0; i < tick_fe.arg_count; i++) {
index 17ffb9c770fcbbb44a315b837a3c373b583a51d8..c65fc3246c8d496075915e578c34d523d4813d9b 100644 (file)
@@ -46,17 +46,13 @@ static int php_compare_tick_functions(void *elem1, void *elem2)
        return (func1 == func2);
 }
 
-PHPAPI void php_add_tick_function(void (*func)(int))
+PHPAPI void php_add_tick_function(void (*func)(int) TSRMLS_DC)
 {
-       TSRMLS_FETCH();
-
        zend_llist_add_element(&PG(tick_functions), (void *)&func);
 }
 
-PHPAPI void php_remove_tick_function(void (*func)(int))
+PHPAPI void php_remove_tick_function(void (*func)(int) TSRMLS_DC)
 {
-       TSRMLS_FETCH();
-
        zend_llist_del_element(&PG(tick_functions), (void *)func,
                                                   (int(*)(void*, void*))php_compare_tick_functions);
 }
@@ -69,10 +65,8 @@ static void php_tick_iterator(void *data, void *arg TSRMLS_DC)
        func(*((int *)arg));
 }
 
-void php_run_ticks(int count)
+void php_run_ticks(int count TSRMLS_DC)
 {
-       TSRMLS_FETCH();
-
        zend_llist_apply_with_argument(&PG(tick_functions), (llist_apply_with_arg_func_t) php_tick_iterator, &count TSRMLS_CC);
 }
 
index cc966fa520e7b7c2a6d82f126fbcc99d7b804849..9f50af00f5f3a4bade3dec343adc251c1fd054cf 100644 (file)
 int php_startup_ticks(TSRMLS_D);
 void php_deactivate_ticks(TSRMLS_D);
 void php_shutdown_ticks(TSRMLS_D);
-void php_run_ticks(int count);
+void php_run_ticks(int count TSRMLS_DC);
 
 BEGIN_EXTERN_C()
-PHPAPI void php_add_tick_function(void (*func)(int));
-PHPAPI void php_remove_tick_function(void (*func)(int));
+PHPAPI void php_add_tick_function(void (*func)(int) TSRMLS_DC);
+PHPAPI void php_remove_tick_function(void (*func)(int) TSRMLS_DC);
 END_EXTERN_C()
 
 #endif