aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/objhash.c3
-rw-r--r--src/core/socket.c11
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);
}