static void final_shutdown(pthread_t server_tid) { graphite_worker_destroy(graphite_worker); stop_listener(server_tid); worker_pool_destroy_static(); free(s_listen); sleep(1); // give a chance to the detachable tcp worker threads to pthread_exit() config_destroy(); destroy_proctitle(); }
static int tool_finalize(void) { int exit_status = ORTE_SUCCESS, ret; /* * Stop the listener */ if( ORTE_SUCCESS != (ret = stop_listener() ) ) { exit_status = ret; } if (ORTE_SUCCESS != (ret = orte_finalize())) { exit_status = ret; } return exit_status; }
int _main(config_t *config) { pthread_t server_tid= 0; signal(SIGTERM, sig_handler); signal(SIGINT, sig_handler); signal(SIGPIPE, sig_handler); signal(SIGHUP, sig_handler); setproctitle("starting"); s_listen = mallocz_or_die(sizeof(*s_listen)); worker_pool_init_static(config); server_tid= setup_listener(config); graphite_worker= mallocz_or_die(sizeof(graphite_worker_t)); pthread_create(&graphite_worker->tid, NULL, graphite_worker_thread, graphite_worker); for (;;) { int abort; abort= get_abort_val(); if (abort & STOP) { break; } else if (abort & RELOAD) { if (config_reload(config)) { stop_listener(server_tid); server_tid= setup_listener(config); worker_pool_reload_static(config); /* XXX: check me */ /* check and see if we need to stop the old graphite processor and replace it */ graphite_worker_destroy(graphite_worker); pthread_create(&graphite_worker->tid, NULL, graphite_worker_thread, graphite_worker); } unset_abort_bits(RELOAD); } mark_second_elapsed(); sleep(1); } final_shutdown(server_tid); SAY("bye"); closelog(); return(0); }
static int ckpt_finalize(void) { int exit_status = ORTE_SUCCESS, ret; /* * Stop the listener */ if( ORTE_SUCCESS != (ret = stop_listener() ) ) { exit_status = ret; } if (ORTE_SUCCESS != (ret = orte_finalize())) { exit_status = ret; goto cleanup; } cleanup: return exit_status; }
void stop_server() { //stop_logger(); stop_listener(); stop_workers(); }