extern void acct_gather_energy_g_conf_values(void *data) { if (slurm_acct_gather_energy_init() < 0) return; (*(ops.conf_values))(data); }
extern void acct_gather_energy_g_conf_set(s_p_hashtbl_t *tbl) { if (slurm_acct_gather_energy_init() < 0) return; (*(ops.conf_set))(tbl); }
extern void acct_gather_energy_g_conf_options(s_p_options_t **full_options, int *full_options_cnt) { if (slurm_acct_gather_energy_init() < 0) return; (*(ops.conf_options))(full_options, full_options_cnt); }
extern int acct_gather_energy_g_update_node_energy(void) { int retval = SLURM_ERROR; if (slurm_acct_gather_energy_init() < 0) return retval; retval = (*(ops.update_node_energy))(); return retval; }
extern int acct_gather_energy_g_set_data(enum acct_energy_type data_type, void *data) { int retval = SLURM_ERROR; if (slurm_acct_gather_energy_init() < 0) return retval; retval = (*(ops.set_data))(data_type, data); return retval; }
extern int acct_gather_energy_startpoll(uint32_t frequency) { int retval = SLURM_SUCCESS; pthread_attr_t attr; pthread_t _watch_node_thread_id; if (slurm_acct_gather_energy_init() < 0) return SLURM_ERROR; if (!acct_shutdown) { error("acct_gather_energy_startpoll: " "poll already started!"); return retval; } acct_shutdown = false; freq = frequency; if (frequency == 0) { /* don't want dynamic monitoring? */ debug2("acct_gather_energy dynamic logging disabled"); return retval; } /* create polling thread */ slurm_attr_init(&attr); if (pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)) error("pthread_attr_setdetachstate error %m"); if (pthread_create(&_watch_node_thread_id, &attr, &_watch_node, NULL)) { debug("acct_gather_energy failed to create _watch_node " "thread: %m"); frequency = 0; } else debug3("acct_gather_energy dynamic logging enabled"); slurm_attr_destroy(&attr); return retval; }