From 66ff33813a8cd9d4cba96280bb613762fb0c2ce2 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Wed, 11 Nov 2020 21:29:54 -0800 Subject: fixes #1323 stats framework is *way* to heavy This should reduce the amount of copying, and the overall size used by pipes and other objects quite a bit. (On my system, the sizeof nni_pipe shrank by 400 bytes, for example.) --- src/transport/tls/tls.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'src/transport/tls') diff --git a/src/transport/tls/tls.c b/src/transport/tls/tls.c index b9fa064e..ae5d86ec 100644 --- a/src/transport/tls/tls.c +++ b/src/transport/tls/tls.c @@ -78,7 +78,7 @@ struct tlstran_ep { const char * host; nng_sockaddr src; nng_sockaddr sa; - nni_stat_item st_rcvmaxsz; + nni_stat_item st_rcv_max; }; static void tlstran_pipe_send_start(tlstran_pipe *); @@ -833,9 +833,16 @@ tlstran_ep_init(tlstran_ep **epp, nng_url *url, nni_sock *sock) ep->proto = nni_sock_proto_id(sock); ep->url = url; - nni_stat_init(&ep->st_rcvmaxsz, "rcvmaxsz", "maximum receive size"); - nni_stat_set_type(&ep->st_rcvmaxsz, NNG_STAT_LEVEL); - nni_stat_set_unit(&ep->st_rcvmaxsz, NNG_UNIT_BYTES); +#ifdef NNG_ENABLE_STATS + static const nni_stat_info rcv_max_info = { + .si_name = "rcv_max", + .si_desc = "maximum receive size", + .si_type = NNG_STAT_LEVEL, + .si_unit = NNG_UNIT_BYTES, + .si_atomic = true, + }; + nni_stat_init(&ep->st_rcv_max, &rcv_max_info); +#endif *epp = ep; return (0); @@ -881,7 +888,9 @@ tlstran_ep_init_dialer(void **dp, nni_url *url, nni_dialer *ndialer) tlstran_ep_fini(ep); return (rv); } - nni_dialer_add_stat(ndialer, &ep->st_rcvmaxsz); +#ifdef NNG_ENABLE_STATS + nni_dialer_add_stat(ndialer, &ep->st_rcv_max); +#endif *dp = ep; return (0); } @@ -949,8 +958,9 @@ tlstran_ep_init_listener(void **lp, nni_url *url, nni_listener *nlistener) tlstran_ep_fini(ep); return (rv); } - - nni_listener_add_stat(nlistener, &ep->st_rcvmaxsz); +#ifdef NNG_ENABLE_STATS + nni_listener_add_stat(nlistener, &ep->st_rcv_max); +#endif *lp = ep; return (0); } @@ -1066,9 +1076,10 @@ tlstran_ep_set_recvmaxsz(void *arg, const void *v, size_t sz, nni_type t) NNI_LIST_FOREACH (&ep->busypipes, p) { p->rcvmax = val; } - nni_stat_set_value(&ep->st_rcvmaxsz, val); - nni_mtx_unlock(&ep->mtx); +#ifdef NNG_ENABLE_STATS + nni_stat_set_value(&ep->st_rcv_max, val); +#endif } return (rv); } -- cgit v1.2.3-70-g09d2