void test_set_get(void) { gallus_result_t r; global_state_t s; int i; global_state_reset(); for (i = (int)GLOBAL_STATE_INITIALIZING; i <= (int)GLOBAL_STATE_FINALIZED; i++) { r = global_state_set((global_state_t)i); TEST_ASSERT_EQUAL(r, GALLUS_RESULT_OK); r = global_state_get(&s); TEST_ASSERT_EQUAL(r, GALLUS_RESULT_OK); TEST_ASSERT_EQUAL(s, (global_state_t)i); } }
static void s_term_handler(int sig) { lagopus_result_t r = LAGOPUS_RESULT_ANY_FAILURES; global_state_t gs = GLOBAL_STATE_UNKNOWN; if ((r = global_state_get(&gs)) == LAGOPUS_RESULT_OK) { if ((int)gs == (int)GLOBAL_STATE_STARTED) { shutdown_grace_level_t l = SHUTDOWN_UNKNOWN; if (sig == SIGTERM || sig == SIGINT) { l = SHUTDOWN_GRACEFULLY; } else if (sig == SIGQUIT) { l = SHUTDOWN_RIGHT_NOW; } if (IS_VALID_SHUTDOWN(l) == true) { lagopus_msg_info("About to request shutdown(%s)...\n", (l == SHUTDOWN_RIGHT_NOW) ? "RIGHT_NOW" : "GRACEFULLY"); if ((r = global_state_request_shutdown(l)) == LAGOPUS_RESULT_OK) { lagopus_msg_info("The shutdown request accepted.\n"); } else { lagopus_perror(r); lagopus_msg_error("can't request shutdown.\n"); } } } else if ((int)gs < (int)GLOBAL_STATE_STARTED) { if (sig == SIGTERM || sig == SIGINT || sig == SIGQUIT) { s_got_term_sig = true; } } else { lagopus_msg_debug(5, "The system is already shutting down.\n"); } } }