From c9bbe8eb574fe10ff16cc71a23fcc9b31fb8ed04 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 5 Dec 2021 22:11:24 -0500 Subject: Use static initialization for lists and mutexes. This eliminates some run-time initialization, moving it to compile time. Additional follow up work will expand on this to simplify initialization and reduce the need for certain locks. --- src/core/stats.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) (limited to 'src/core/stats.c') diff --git a/src/core/stats.c b/src/core/stats.c index e4765078..f7e52fb0 100644 --- a/src/core/stats.c +++ b/src/core/stats.c @@ -19,21 +19,21 @@ struct nng_stat { const nni_stat_info *s_info; const nni_stat_item *s_item; // Used during snapshot collection nni_list s_children; - nni_stat * s_parent; + nni_stat *s_parent; nni_list_node s_node; nni_time s_timestamp; union { int sv_id; bool sv_bool; uint64_t sv_value; - char * sv_string; + char *sv_string; } s_val; }; #ifdef NNG_ENABLE_STATS static nni_stat_item stats_root; -static nni_mtx stats_lock; -static nni_mtx stats_val_lock; +static nni_mtx stats_lock = NNI_MTX_INITIALIZER; +static nni_mtx stats_val_lock = NNI_MTX_INITIALIZER; #endif void @@ -171,7 +171,7 @@ nni_stat_set_string(nni_stat_item *item, const char *s) { #ifdef NNG_ENABLE_STATS const nni_stat_info *info = item->si_info; - char * old = item->si_u.sv_string; + char *old = item->si_u.sv_string; nni_mtx_lock(&stats_val_lock); if ((s != NULL) && (old != NULL) && (strcmp(s, old) == 0)) { @@ -235,7 +235,7 @@ nng_stats_free(nni_stat *st) static int stat_make_tree(nni_stat_item *item, nni_stat **sp) { - nni_stat * stat; + nni_stat *stat; nni_stat_item *child; if ((stat = NNI_ALLOC_STRUCT(stat)) == NULL) { @@ -266,8 +266,8 @@ stat_update(nni_stat *stat) { const nni_stat_item *item = stat->s_item; const nni_stat_info *info = item->si_info; - char * old; - char * str; + char *old; + char *str; switch (info->si_type) { case NNG_STAT_SCOPE: @@ -397,7 +397,6 @@ nng_stat_bool(nni_stat *stat) return (stat->s_val.sv_bool); } - const char * nng_stat_string(nng_stat *stat) { @@ -498,8 +497,6 @@ nni_stat_sys_init(void) .si_desc = "all statistics", .si_type = NNG_STAT_SCOPE, }; - nni_mtx_init(&stats_lock); - nni_mtx_init(&stats_val_lock); nni_stat_init(&stats_root, &root); #endif return (0); @@ -508,10 +505,6 @@ nni_stat_sys_init(void) void nni_stat_sys_fini(void) { -#ifdef NNG_ENABLE_STATS - nni_mtx_fini(&stats_lock); - nni_mtx_fini(&stats_val_lock); -#endif } #ifdef NNG_ENABLE_STATS @@ -538,10 +531,10 @@ nng_stats_dump(nng_stat *stat) #ifdef NNG_ENABLE_STATS static char buf[128]; // to minimize recursion, not thread safe int len; - char * scope; - char * indent = " "; + char *scope; + char *indent = " "; unsigned long long val; - nni_stat * child; + nni_stat *child; switch (nng_stat_type(stat)) { case NNG_STAT_SCOPE: -- cgit v1.2.3-70-g09d2