From 993373140212da702e1a845188cbe4dc44a76ad5 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Tue, 6 Jun 2017 07:48:28 -0700 Subject: Make objhash fini calls idempotent. --- src/core/objhash.c | 3 +++ src/core/socket.c | 11 ++--------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/core/objhash.c b/src/core/objhash.c index 9529ac30..a25b35d9 100644 --- a/src/core/objhash.c +++ b/src/core/objhash.c @@ -82,6 +82,9 @@ nni_objhash_init(nni_objhash **ohp, nni_objhash_ctor ctor, void nni_objhash_fini(nni_objhash *oh) { + if (oh == NULL) { + return; + } if (oh->oh_nodes != NULL) { nni_free(oh->oh_nodes, oh->oh_cap * sizeof (nni_objhash_node)); oh->oh_nodes = NULL; diff --git a/src/core/socket.c b/src/core/socket.c index 02a18a7a..ffacd59a 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -13,7 +13,7 @@ // Socket implementation. -static nni_objhash *nni_socks; +static nni_objhash *nni_socks = NULL; uint32_t nni_sock_id(nni_sock *s) @@ -429,6 +429,7 @@ void nni_sock_sys_fini(void) { nni_objhash_fini(nni_socks); + nni_socks = NULL; } @@ -628,14 +629,6 @@ nni_sock_close(nni_sock *sock) nni_objhash_unref(nni_socks, sock->s_id); nni_objhash_unref_wait(nni_socks, sock->s_id); - - nni_mtx_lock(nni_idlock); - // XXX: CLEAN THIS UP - if (nni_objhash_count(nni_socks) == 0) { - nni_idhash_reclaim(nni_pipes); - nni_idhash_reclaim(nni_endpoints); - } - nni_mtx_unlock(nni_idlock); } -- cgit v1.2.3-70-g09d2