aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/stats.c58
-rw-r--r--src/core/stats.h9
2 files changed, 21 insertions, 46 deletions
diff --git a/src/core/stats.c b/src/core/stats.c
index f9b56858..d6f98e3e 100644
--- a/src/core/stats.c
+++ b/src/core/stats.c
@@ -48,7 +48,6 @@ nni_stat_add(nni_stat_item *parent, nni_stat_item *child)
NNI_LIST_INIT(&child->si_children, nni_stat_item, si_node);
}
nni_list_append(&parent->si_children, child);
- child->si_parent = parent;
#else
NNI_ARG_UNUSED(parent);
NNI_ARG_UNUSED(child);
@@ -70,15 +69,11 @@ nni_stat_register(nni_stat_item *child)
}
void
-nni_stat_unregister(nni_stat_item *child)
+nni_stat_unregister(nni_stat_item *stat)
{
#ifdef NNG_ENABLE_STATS
- nni_stat_item *parent;
nni_mtx_lock(&stats_lock);
- if ((parent = child->si_parent) != NULL) {
- nni_list_remove(&parent->si_children, child);
- child->si_parent = NULL;
- }
+ nni_list_node_remove(&stat->si_node);
nni_mtx_unlock(&stats_lock);
#else
NNI_ARG_UNUSED(child);
@@ -90,16 +85,14 @@ void
nni_stat_init(nni_stat_item *stat, const char *name, const char *desc)
{
NNI_LIST_INIT(&stat->si_children, nni_stat_item, si_node);
- stat->si_parent = NULL;
- stat->si_name = name;
- stat->si_desc = desc;
- stat->si_lock = NULL;
- stat->si_update = NULL;
- stat->si_private = NULL;
- stat->si_string = NULL;
- stat->si_number = 0;
- stat->si_type = NNG_STAT_COUNTER;
- stat->si_unit = NNG_UNIT_NONE;
+ stat->si_name = name;
+ stat->si_desc = desc;
+ stat->si_lock = NULL;
+ stat->si_update = NULL;
+ stat->si_string = NULL;
+ stat->si_number = 0;
+ stat->si_type = NNG_STAT_COUNTER;
+ stat->si_unit = NNG_UNIT_NONE;
}
void
@@ -141,9 +134,8 @@ nni_stat_init_bool(
}
static void
-stat_atomic_update(nni_stat_item *stat, void *notused)
+stat_atomic_update(nni_stat_item *stat)
{
- NNI_ARG_UNUSED(notused);
stat->si_number = nni_atomic_get64(&stat->si_atomic);
}
@@ -151,9 +143,8 @@ void
nni_stat_init_atomic(nni_stat_item *stat, const char *name, const char *desc)
{
nni_stat_init(stat, name, desc);
- stat->si_number = 0;
- stat->si_private = NULL;
- stat->si_update = stat_atomic_update;
+ stat->si_number = 0;
+ stat->si_update = stat_atomic_update;
nni_atomic_init64(&stat->si_atomic);
}
@@ -192,19 +183,6 @@ nni_stat_set_lock(nni_stat_item *stat, nni_mtx *mtx)
#endif
}
-void
-nni_stat_set_update(nni_stat_item *stat, nni_stat_update f, void *a)
-{
-#ifdef NNG_ENABLE_STATS
- stat->si_update = f;
- stat->si_private = a;
-#else
- NNI_ARG_UNUSED(stat);
- NNI_ARG_UNUSED(f);
- NNI_ARG_UNUSED(a);
-#endif
-}
-
#ifdef NNG_ENABLE_STATS
void
nni_stat_set_type(nni_stat_item *stat, int type)
@@ -295,7 +273,7 @@ stat_update(nni_stat *stat)
}
}
if (item->si_update != NULL) {
- item->si_update(item, item->si_private);
+ item->si_update(item);
}
stat->s_value = item->si_number;
stat->s_time = nni_clock();
@@ -424,7 +402,7 @@ nng_stat_find(nng_stat *stat, const char *name)
if (strcmp(name, stat->s_name) == 0) {
return (stat);
}
- NNI_LIST_FOREACH(&stat->s_children, child) {
+ NNI_LIST_FOREACH (&stat->s_children, child) {
nng_stat *result;
if ((result = nng_stat_find(child, name)) != NULL) {
return (result);
@@ -437,7 +415,7 @@ nng_stat *
nng_stat_find_socket(nng_stat *stat, nng_socket s)
{
char name[16];
- (void) snprintf(name, sizeof (name), "socket%d", nng_socket_id(s));
+ (void) snprintf(name, sizeof(name), "socket%d", nng_socket_id(s));
return (nng_stat_find(stat, name));
}
@@ -445,7 +423,7 @@ nng_stat *
nng_stat_find_dialer(nng_stat *stat, nng_dialer d)
{
char name[16];
- (void) snprintf(name, sizeof (name), "dialer%d", nng_dialer_id(d));
+ (void) snprintf(name, sizeof(name), "dialer%d", nng_dialer_id(d));
return (nng_stat_find(stat, name));
}
@@ -453,7 +431,7 @@ nng_stat *
nng_stat_find_listener(nng_stat *stat, nng_listener l)
{
char name[16];
- (void) snprintf(name, sizeof (name), "listener%d", nng_listener_id(l));
+ (void) snprintf(name, sizeof(name), "listener%d", nng_listener_id(l));
return (nng_stat_find(stat, name));
}
diff --git a/src/core/stats.h b/src/core/stats.h
index a9ea6e13..0375979e 100644
--- a/src/core/stats.h
+++ b/src/core/stats.h
@@ -1,5 +1,5 @@
//
-// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2020 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This software is supplied under the terms of the MIT License, a
@@ -25,7 +25,7 @@
typedef struct nni_stat_item nni_stat_item;
-typedef void (*nni_stat_update)(nni_stat_item *, void *);
+typedef void (*nni_stat_update)(nni_stat_item *);
typedef enum nng_stat_type_enum nni_stat_type;
typedef enum nng_unit_enum nni_stat_unit;
@@ -37,12 +37,10 @@ typedef enum nng_unit_enum nni_stat_unit;
struct nni_stat_item {
#ifdef NNG_ENABLE_STATS
nni_list_node si_node; // list node, framework use only
- nni_stat_item * si_parent; // link back to parent, framework use only
nni_list si_children; // children, framework use only
const char * si_name; // name of statistic
const char * si_desc; // description of statistic (English)
nni_mtx * si_lock; // lock for accessing, can be NULL
- void * si_private; // provider private pointer
nni_stat_type si_type; // type of stat, e.g. NNG_STAT_LEVEL
nni_stat_unit si_unit; // units, e.g. NNG_UNIT_MILLIS
nni_stat_update si_update; // update function (can be NULL)
@@ -50,7 +48,7 @@ struct nni_stat_item {
uint64_t si_number; // numeric value
nni_atomic_u64 si_atomic; // atomic value
#else
- char si_disabled; // place holder, cannot be empty in C
+ char si_disabled; // place holder, cannot be empty in C
#endif
};
@@ -67,7 +65,6 @@ void nni_stat_unregister(nni_stat_item *);
void nni_stat_set_value(nni_stat_item *, uint64_t);
void nni_stat_set_lock(nni_stat_item *, nni_mtx *);
-void nni_stat_set_update(nni_stat_item *, nni_stat_update, void *);
#ifdef NNG_ENABLE_STATS
void nni_stat_init(nni_stat_item *, const char *, const char *);