mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Eliminate the TSRMLS_FETCH() calls in the ticks functions and hook
This commit is contained in:
parent
c83598119b
commit
aed4b086ac
8 changed files with 13 additions and 19 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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++) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,11 +24,11 @@
|
|||
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue