aboutsummaryrefslogtreecommitdiff
path: root/src/core/init.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-06-06 08:15:08 -0700
committerGarrett D'Amore <garrett@damore.org>2017-06-06 08:15:08 -0700
commit46a559cbdff02d8f9ca48bd918c17c33336de3a1 (patch)
tree7c3d6ec8fb757e2856cfeeb827f78eb4c80fefb2 /src/core/init.c
parent90c0aad40e9dbcfc1734f3174d6ce20625004a33 (diff)
downloadnng-46a559cbdff02d8f9ca48bd918c17c33336de3a1.tar.gz
nng-46a559cbdff02d8f9ca48bd918c17c33336de3a1.tar.bz2
nng-46a559cbdff02d8f9ca48bd918c17c33336de3a1.zip
Start of using objhash for endpoints.
Diffstat (limited to 'src/core/init.c')
-rw-r--r--src/core/init.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/core/init.c b/src/core/init.c
index 4d73e897..7b3b4433 100644
--- a/src/core/init.c
+++ b/src/core/init.c
@@ -11,14 +11,10 @@
#include <stdlib.h>
#include <stdio.h>
-nni_idhash *nni_endpoints;
nni_idhash *nni_pipes;
-nni_idhash *nni_sockets;
nni_mtx *nni_idlock;
-static nni_idhash nni_endpoints_x;
static nni_idhash nni_pipes_x;
-static nni_idhash nni_sockets_x;
static nni_mtx nni_idlock_x;
static int
@@ -44,17 +40,24 @@ nni_init_helper(void)
nni_taskq_sys_fini();
return (rv);
}
+ if ((rv = nni_ep_sys_init()) != 0) {
+ nni_sock_sys_fini();
+ nni_random_sys_fini();
+ nni_timer_sys_fini();
+ nni_taskq_sys_fini();
+ return (rv);
+ }
if ((rv = nni_mtx_init(&nni_idlock_x)) != 0) {
+ nni_ep_sys_fini();
nni_sock_sys_fini();
nni_random_sys_fini();
nni_timer_sys_fini();
nni_taskq_sys_fini();
return (rv);
}
- if (((rv = nni_idhash_init(&nni_endpoints_x)) != 0) ||
- ((rv = nni_idhash_init(&nni_pipes_x)) != 0) ||
- ((rv = nni_idhash_init(&nni_sockets_x)) != 0)) {
+ if ((rv = nni_idhash_init(&nni_pipes_x)) != 0) {
nni_mtx_fini(&nni_idlock_x);
+ nni_ep_sys_fini();
nni_sock_sys_fini();
nni_random_sys_fini();
nni_timer_sys_fini();
@@ -63,13 +66,9 @@ nni_init_helper(void)
}
nni_idhash_set_limits(&nni_pipes_x, 1, 0x7fffffff,
(nni_random() & 0x7ffffffe) + 1);
- nni_idhash_set_limits(&nni_sockets_x, 1, 0x7fffffff, 1);
- nni_idhash_set_limits(&nni_endpoints_x, 1, 0xffffffff, 1);
nni_idlock = &nni_idlock_x;
nni_pipes = &nni_pipes_x;
- nni_endpoints = &nni_endpoints_x;
- nni_sockets = &nni_sockets_x;
nni_tran_sys_init();
return (0);
@@ -86,11 +85,11 @@ nni_init(void)
void
nni_fini(void)
{
- nni_idhash_fini(&nni_endpoints_x);
nni_idhash_fini(&nni_pipes_x);
- nni_idhash_fini(&nni_sockets_x);
nni_mtx_fini(&nni_idlock_x);
nni_tran_sys_fini();
+ nni_ep_sys_fini();
+ nni_sock_sys_fini();
nni_random_sys_fini();
nni_timer_sys_fini();
nni_taskq_sys_fini();