ack, code review only. /Thanks HansN

On 12/19/2017 03:09 AM, Minh Chau wrote:
---
  src/amf/amfd/imm.cc   | 13 +++++++++++++
  src/amf/amfd/ndfsm.cc |  2 +-
  2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/amf/amfd/imm.cc b/src/amf/amfd/imm.cc
index bf7e3d3..aef988f 100644
--- a/src/amf/amfd/imm.cc
+++ b/src/amf/amfd/imm.cc
@@ -2185,12 +2185,25 @@ void avd_imm_reinit_bg(void) {
    pthread_t thread;
    pthread_attr_t attr;
    int rc = 0;
+  AVD_AVND *node = nullptr;
TRACE_ENTER();
    if (avd_cb->avd_imm_status == AVD_IMM_INIT_ONGOING) {
      TRACE("Already IMM init is going in another thread");
      return;
    }
+  node = avd_node_find_nodeid(avd_cb->node_id_avd);
+  if (node == nullptr) {
+    LOG_ER("%s: invalid node ID (%x)", __FUNCTION__,
+        avd_cb->node_id_avd);
+    return;
+  }
+
+  if (node->node_state == AVD_AVND_STATE_SHUTTING_DOWN) {
+    // the node is shutting down phase, no need to reinitialize
+    // IMM service
+    return;
+  }
    avd_cb->avd_imm_status = AVD_IMM_INIT_ONGOING;
LOG_NO("Re-initializing with IMM");
diff --git a/src/amf/amfd/ndfsm.cc b/src/amf/amfd/ndfsm.cc
index ca2e3f6..8501bad 100644
--- a/src/amf/amfd/ndfsm.cc
+++ b/src/amf/amfd/ndfsm.cc
@@ -589,7 +589,7 @@ void avd_node_down_evh(AVD_CL_CB *cb, AVD_EVT *evt)
        LOG_ER("%s:%u: %u", __FILE__, __LINE__, node->node_info.nodeId);
      }
    }
-
+  avd_node_state_set(node, AVD_AVND_STATE_SHUTTING_DOWN);
  done:
    avsv_dnd_msg_free(n2d_msg);
    evt->info.avnd_msg = nullptr;


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to