/*****************************************************************************\ * terminate message hander thread \*****************************************************************************/ extern void term_msg_thread(void) { pthread_mutex_lock(&thread_flag_mutex); if (thread_running) { int fd; slurm_addr_t addr; thread_shutdown = true; /* Open and close a connection to the listening port. * Allows slurm_accept_msg_conn() to return in * _msg_thread() so that it can check the thread_shutdown * flag. */ slurm_set_addr(&addr, sched_port, "localhost"); fd = slurm_open_stream(&addr); if (fd != -1) { /* we don't care if the open failed */ slurm_close_stream(fd); } debug2("waiting for dynalloc thread to exit"); pthread_join(msg_thread_id, NULL); msg_thread_id = 0; thread_shutdown = false; thread_running = false; debug2("join of dynalloc thread successful"); } pthread_mutex_unlock(&thread_flag_mutex); }
extern void term_msg_thread(void) { slurm_mutex_lock(&thread_flag_mutex); if (thread_running) { int fd; slurm_addr_t addr; thread_shutdown = true; /* Open and close a connection to the plugin listening port. * Allows slurm_accept_msg_conn() to return in _msg_thread() * so that it can check the thread_shutdown flag. */ slurm_set_addr(&addr, nonstop_comm_port, "localhost"); fd = slurm_open_stream(&addr, true); if (fd != -1) { /* we don't care if the open failed */ slurm_close(fd); } debug2("waiting for slurmctld/nonstop thread to exit"); pthread_join(msg_thread_id, NULL); msg_thread_id = 0; thread_shutdown = false; thread_running = false; debug2("join of slurmctld/nonstop thread was successful"); } slurm_mutex_unlock(&thread_flag_mutex); }