gallus_result_t gallus_module_stop_all(void) { gallus_result_t ret = GALLUS_RESULT_ANY_FAILURES; s_lock(); { s_gstate = MODULE_GLOBAL_STATE_STOPPING; if (s_n_modules > 0) { gallus_result_t first_err = GALLUS_RESULT_OK; size_t i; a_module *mptr; /* * Reverse order. */ for (i = 0; i < s_n_modules; i++) { mptr = &(s_modules[s_n_modules - i - 1]); ret = s_stop_module(mptr); if (ret != GALLUS_RESULT_OK) { gallus_perror(ret); gallus_msg_error("can't stop module \"%s\".\n", mptr->m_name); if (first_err == GALLUS_RESULT_OK) { first_err = ret; } } /* * Just carry on stopping no matter what kind of errors * occur. */ } ret = first_err; } else { ret = GALLUS_RESULT_OK; } } s_unlock(); return ret; }
lagopus_result_t lagopus_module_stop_all(void) { lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES; s_lock(); { if (s_n_modules > 0) { lagopus_result_t first_err = LAGOPUS_RESULT_OK; size_t i; a_module *mptr; /* * Reverse order. */ for (i = 0; i < s_n_modules; i++) { mptr = &(s_modules[s_n_modules - i - 1]); ret = s_stop_module(mptr); if (ret != LAGOPUS_RESULT_OK) { lagopus_perror(ret); lagopus_msg_error("can't stop module \"%s\".\n", mptr->m_name); if (first_err == LAGOPUS_RESULT_OK) { first_err = ret; } } /* * Just carry on stopping no matter what kind of errors * occur. */ } ret = first_err; } else { ret = LAGOPUS_RESULT_OK; } } s_unlock(); return ret; }