From 5c18c13043fa71bf03cbd61eb310b985a573fcbe Mon Sep 17 00:00:00 2001 From: fengzero Date: Fri, 10 Jun 2022 07:01:08 +0000 Subject: [PATCH] after the adapter is closed, close the manager --- src/adapter/adapter.c | 14 +++++++------- src/core/manager.c | 7 ++++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/adapter/adapter.c b/src/adapter/adapter.c index f6475a38..507d5236 100644 --- a/src/adapter/adapter.c +++ b/src/adapter/adapter.c @@ -482,10 +482,10 @@ static int adapter_response(neu_adapter_t *adapter, neu_reqresp_head_t *header, nng_msg *msg = neu_msg_gen(header, data); - ret = nng_sendmsg(adapter->nng.sock, msg, NNG_FLAG_NONBLOCK); - if (ret == NNG_EAGAIN) { - ret = nng_sendmsg(adapter->nng.sock, msg, 0); - } + ret = nng_sendmsg(adapter->nng.sock, msg, 0); + // ret = nng_sendmsg(adapter->nng.sock, msg, NNG_FLAG_NONBLOCK); + // if (ret == NNG_EAGAIN) { + //} if (ret != 0) { nlog_warn("sendmsg error: %d", ret); nng_msg_free(msg); @@ -726,6 +726,9 @@ int neu_adapter_uninit(neu_adapter_t *adapter) { int rv = 0; + nng_dialer_close(adapter->nng.dialer); + nng_close(adapter->nng.sock); + if (adapter->plugin_info.module->type == NEU_NA_TYPE_DRIVER) { neu_adapter_driver_uninit((neu_adapter_driver_t *) adapter); } @@ -733,9 +736,6 @@ int neu_adapter_uninit(neu_adapter_t *adapter) neu_event_del_io(adapter->events, adapter->nng_io); - nng_dialer_close(adapter->nng.dialer); - nng_close(adapter->nng.sock); - nlog_info("Stop the adapter(%s)", adapter->name); return rv; } diff --git a/src/core/manager.c b/src/core/manager.c index fa9bd905..36a5bbc7 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -89,13 +89,14 @@ void neu_manager_destroy(neu_manager_t *manager) stop_static_adapter(manager, DEFAULT_DASHBOARD_PLUGIN_NAME); stop_static_adapter(manager, DEFAULT_DUMMY_PLUGIN_NAME); + neu_subscribe_manager_destroy(manager->subscribe_manager); + neu_node_manager_destroy(manager->node_manager); + neu_plugin_manager_destroy(manager->plugin_manager); + nng_close(manager->socket); neu_event_del_io(manager->events, manager->loop); neu_event_close(manager->events); - neu_subscribe_manager_destroy(manager->subscribe_manager); - neu_node_manager_destroy(manager->node_manager); - neu_plugin_manager_destroy(manager->plugin_manager); nng_mtx_free(manager->mtx); free(manager); nlog_warn("manager exit");