int qdevice_cmap_del_track(struct qdevice_instance *instance) { cs_error_t res; res = cmap_track_delete(instance->cmap_handle, instance->cmap_reload_track_handle); if (res != CS_OK) { qdevice_log(LOG_WARNING, "Can't delete cmap totemconfig_reload_in_progress tracking"); } res = cmap_track_delete(instance->cmap_handle, instance->cmap_nodelist_track_handle); if (res != CS_OK) { qdevice_log(LOG_WARNING, "Can't delete cmap nodelist tracking"); } res = cmap_track_delete(instance->cmap_handle, instance->cmap_logging_track_handle); if (res != CS_OK) { qdevice_log(LOG_WARNING, "Can't delete cmap logging tracking"); } res = cmap_track_delete(instance->cmap_handle, instance->cmap_heuristics_track_handle); if (res != CS_OK) { qdevice_log(LOG_WARNING, "Can't delete cmap heuristics tracking"); } return (0); }
static void _cs_cmap_link_added_removed ( cmap_handle_t cmap_handle_c, cmap_track_handle_t track_handle, int32_t event, const char *key_name, struct cmap_notify_value new_value, struct cmap_notify_value old_value, void *user_data) { struct track_item *track_item; /* Add/remove a tracker for a new/removed knet link */ if (strstr(key_name, ".connected")) { if (event == CMAP_TRACK_ADD) { track_item = malloc(sizeof(struct track_item)); if (!track_item) { return; } cmap_track_add(stats_handle, key_name, CMAP_TRACK_MODIFY, _cs_cmap_link_faulty_key_changed, NULL, &track_handle); strcpy(track_item->key_name, key_name); track_item->track_handle = track_handle; qb_map_put(tracker_map, track_item->key_name, track_item); } else { track_item = qb_map_get(tracker_map, key_name); if (track_item) { cmap_track_delete(stats_handle, track_item->track_handle); qb_map_rm(tracker_map, track_item->key_name); free(track_item); } } } }
static void cmap_destroy(void) { if (cmap_source) { g_source_destroy(cmap_source); cmap_source = NULL; } if (track_handle) { cmap_track_delete(cmap_handle, track_handle); track_handle = 0; } if (cmap_handle) { cmap_finalize(cmap_handle); cmap_handle = 0; } }