aboutsummaryrefslogtreecommitdiff
path: root/src/core/init.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-08-07 16:12:41 -0700
committerGarrett D'Amore <garrett@damore.org>2017-08-07 16:12:41 -0700
commit22d991fda77578dd03c8d477f8427631e6383cee (patch)
treec81eb35a13fbeb1dab8f8e6ca62dc8ccf42636e0 /src/core/init.c
parentc5354ea49184a359df8d477e844b1c52aeb234d5 (diff)
downloadnng-22d991fda77578dd03c8d477f8427631e6383cee.tar.gz
nng-22d991fda77578dd03c8d477f8427631e6383cee.tar.bz2
nng-22d991fda77578dd03c8d477f8427631e6383cee.zip
Subsystem initialize is idempotent; simplify cleanup.
Diffstat (limited to 'src/core/init.c')
-rw-r--r--src/core/init.c48
1 files changed, 10 insertions, 38 deletions
diff --git a/src/core/init.c b/src/core/init.c
index 7de2a497..24a7b118 100644
--- a/src/core/init.c
+++ b/src/core/init.c
@@ -17,45 +17,17 @@ nni_init_helper(void)
{
int rv;
- if ((rv = nni_taskq_sys_init()) != 0) {
- return (rv);
+ if (((rv = nni_taskq_sys_init()) != 0) ||
+ ((rv = nni_timer_sys_init()) != 0) ||
+ ((rv = nni_aio_sys_init()) != 0) ||
+ ((rv = nni_random_sys_init()) != 0) ||
+ ((rv = nni_sock_sys_init()) != 0) ||
+ ((rv = nni_ep_sys_init()) != 0) ||
+ ((rv = nni_pipe_sys_init()) != 0) ||
+ ((rv = nni_tran_sys_init()) != 0)) {
+ nni_fini();
}
- if ((rv = nni_timer_sys_init()) != 0) {
- nni_taskq_sys_fini();
- return (rv);
- }
- if ((rv = nni_aio_sys_init()) != 0) {
- nni_taskq_sys_fini();
- return (rv);
- }
- if ((rv = nni_random_sys_init()) != 0) {
- nni_aio_sys_fini();
- nni_taskq_sys_fini();
- return (rv);
- }
- if ((rv = nni_sock_sys_init()) != 0) {
- nni_random_sys_fini();
- nni_aio_sys_fini();
- nni_taskq_sys_fini();
- return (rv);
- }
- if ((rv = nni_ep_sys_init()) != 0) {
- nni_sock_sys_fini();
- nni_random_sys_fini();
- nni_aio_sys_fini();
- nni_taskq_sys_fini();
- return (rv);
- }
- if ((rv = nni_pipe_sys_init()) != 0) {
- nni_ep_sys_fini();
- nni_sock_sys_fini();
- nni_random_sys_fini();
- nni_aio_sys_fini();
- nni_taskq_sys_fini();
- return (rv);
- }
- nni_tran_sys_init();
- return (0);
+ return (rv);
}
int