diff --git a/ext/mysqlnd/mysqlnd_statistics.c b/ext/mysqlnd/mysqlnd_statistics.c index be80dae96d1..1f76f9a7b04 100644 --- a/ext/mysqlnd/mysqlnd_statistics.c +++ b/ext/mysqlnd/mysqlnd_statistics.c @@ -216,8 +216,6 @@ mysqlnd_stats_init(MYSQLND_STATS ** stats, const size_t statistic_count, const b { *stats = pecalloc(1, sizeof(MYSQLND_STATS), persistent); (*stats)->values = pecalloc(statistic_count, sizeof(uint64_t), persistent); - (*stats)->triggers = pecalloc(statistic_count, sizeof(mysqlnd_stat_trigger), persistent); - (*stats)->in_trigger = FALSE; (*stats)->count = statistic_count; #ifdef ZTS (*stats)->LOCK_access = tsrm_mutex_alloc(); @@ -233,7 +231,6 @@ mysqlnd_stats_end(MYSQLND_STATS * stats, const bool persistent) #ifdef ZTS tsrm_mutex_free(stats->LOCK_access); #endif - pefree(stats->triggers, persistent); pefree(stats->values, persistent); /* mnd_free will reference LOCK_access and crash...*/ pefree(stats, persistent); @@ -241,39 +238,6 @@ mysqlnd_stats_end(MYSQLND_STATS * stats, const bool persistent) /* }}} */ -/* {{{ mysqlnd_stats_set_trigger */ -PHPAPI mysqlnd_stat_trigger -mysqlnd_stats_set_trigger(MYSQLND_STATS * const stats, enum_mysqlnd_collected_stats statistic, mysqlnd_stat_trigger trigger) -{ - mysqlnd_stat_trigger ret = NULL; - DBG_ENTER("mysqlnd_stats_set_trigger"); - if (stats) { - MYSQLND_STATS_LOCK(stats); - ret = stats->triggers[statistic]; - stats->triggers[statistic] = trigger; - MYSQLND_STATS_UNLOCK(stats); - } - DBG_RETURN(ret); -} -/* }}} */ - - -/* {{{ mysqlnd_stats_set_handler */ -PHPAPI mysqlnd_stat_trigger -mysqlnd_stats_reset_triggers(MYSQLND_STATS * const stats) -{ - mysqlnd_stat_trigger ret = NULL; - DBG_ENTER("mysqlnd_stats_reset_trigger"); - if (stats) { - MYSQLND_STATS_LOCK(stats); - memset(stats->triggers, 0, stats->count * sizeof(mysqlnd_stat_trigger)); - MYSQLND_STATS_UNLOCK(stats); - } - DBG_RETURN(ret); -} -/* }}} */ - - /************ MYSQLND specific code **********/ /* {{{ _mysqlnd_get_client_stats */ diff --git a/ext/mysqlnd/mysqlnd_statistics.h b/ext/mysqlnd/mysqlnd_statistics.h index 4fad70bb711..02cd64450cb 100644 --- a/ext/mysqlnd/mysqlnd_statistics.h +++ b/ext/mysqlnd/mysqlnd_statistics.h @@ -26,26 +26,10 @@ #define MYSQLND_STATS_UNLOCK(stats) #endif -#ifndef MYSQLND_CORE_STATISTICS_TRIGGERS_DISABLED -#define MYSQLND_STAT_CALL_TRIGGER(s_array, statistic, val) \ - if ((s_array)->triggers[(statistic)] && (s_array)->in_trigger == FALSE) { \ - (s_array)->in_trigger = TRUE; \ - MYSQLND_STATS_UNLOCK((s_array)); \ - \ - (s_array)->triggers[(statistic)]((s_array), (statistic), (val)); \ - \ - MYSQLND_STATS_LOCK((s_array)); \ - (s_array)->in_trigger = FALSE; \ - } -#else -#define MYSQLND_STAT_CALL_TRIGGER(s_array, statistic, val) -#endif /* MYSQLND_CORE_STATISTICS_TRIGGERS_DISABLED */ - -#define MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(stats, statistic, value) \ +#define MYSQLND_STATS_UPDATE_VALUE(stats, statistic, value) \ { \ MYSQLND_STATS_LOCK(stats); \ (stats)->values[(statistic)] += (value); \ - MYSQLND_STAT_CALL_TRIGGER((stats), (statistic), (value)); \ MYSQLND_STATS_UNLOCK(_p_s); \ } @@ -54,7 +38,7 @@ enum_mysqlnd_collected_stats _s = (statistic);\ MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \ if ((enabler) && _p_s && _s != _p_s->count) { \ - MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, -1); \ + MYSQLND_STATS_UPDATE_VALUE(_p_s, _s, -1); \ }\ } @@ -63,7 +47,7 @@ enum_mysqlnd_collected_stats _s = (statistic);\ MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \ if ((enabler) && _p_s && _s != _p_s->count) { \ - MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, 1); \ + MYSQLND_STATS_UPDATE_VALUE(_p_s, _s, 1); \ }\ } @@ -73,7 +57,7 @@ MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \ if ((enabler) && _p_s && _s != _p_s->count) { \ uint64_t v = (uint64_t) (value); \ - MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, v); \ + MYSQLND_STATS_UPDATE_VALUE(_p_s, _s, v); \ }\ } @@ -85,8 +69,8 @@ uint64_t v2 = (uint64_t) (value2); \ enum_mysqlnd_collected_stats _s1 = (statistic1);\ enum_mysqlnd_collected_stats _s2 = (statistic2);\ - if (_s1 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s1, v1); \ - if (_s2 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s2, v2); \ + if (_s1 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s1, v1); \ + if (_s2 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s2, v2); \ }\ } @@ -100,9 +84,9 @@ enum_mysqlnd_collected_stats _s1 = (statistic1);\ enum_mysqlnd_collected_stats _s2 = (statistic2);\ enum_mysqlnd_collected_stats _s3 = (statistic3);\ - if (_s1 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s1, v1); \ - if (_s2 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s2, v2); \ - if (_s3 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s3, v3); \ + if (_s1 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s1, v1); \ + if (_s2 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s2, v2); \ + if (_s3 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s3, v3); \ }\ } @@ -113,7 +97,4 @@ PHPAPI void mysqlnd_stats_end(MYSQLND_STATS * stats, const bool persistent); PHPAPI void mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, const MYSQLND_STRING * names, zval *return_value ZEND_FILE_LINE_DC); -PHPAPI mysqlnd_stat_trigger mysqlnd_stats_set_trigger(MYSQLND_STATS * const stats, enum_mysqlnd_collected_stats stat, mysqlnd_stat_trigger trigger); -PHPAPI mysqlnd_stat_trigger mysqlnd_stats_reset_triggers(MYSQLND_STATS * const stats); - #endif /* MYSQLND_STATISTICS_H */ diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h index b9bf3cfeb0f..567ff0860b7 100644 --- a/ext/mysqlnd/mysqlnd_structs.h +++ b/ext/mysqlnd/mysqlnd_structs.h @@ -294,14 +294,10 @@ typedef enum_func_status (*mysqlnd_fetch_row_func)(MYSQLND_RES *result, typedef struct st_mysqlnd_stats MYSQLND_STATS; -typedef void (*mysqlnd_stat_trigger)(MYSQLND_STATS * stats, enum_mysqlnd_collected_stats stat, int64_t change); - struct st_mysqlnd_stats { uint64_t *values; - mysqlnd_stat_trigger *triggers; size_t count; - bool in_trigger; #ifdef ZTS MUTEX_T LOCK_access; #endif