void api_done ( void ) { api_link_t *t; while ((t = RB_FIRST(&api_hook_tree)) != NULL) { RB_REMOVE(&api_hook_tree, t, link); free(t); } SKEL_FREE(api_skel); }
void idnode_done(void) { idclass_link_t *il; while ((il = RB_FIRST(&idclasses)) != NULL) { RB_REMOVE(&idclasses, il, link); free(il); } while ((il = RB_FIRST(&idrootclasses)) != NULL) { RB_REMOVE(&idrootclasses, il, link); free(il); } SKEL_FREE(idclasses_skel); }
void idnode_done(void) { idclass_link_t *il; pthread_cond_signal(&idnode_cond); pthread_join(idnode_tid, NULL); pthread_mutex_lock(&idnode_mutex); htsmsg_destroy(idnode_queue); idnode_queue = NULL; pthread_mutex_unlock(&idnode_mutex); while ((il = RB_FIRST(&idclasses)) != NULL) { RB_REMOVE(&idclasses, il, link); free(il); } SKEL_FREE(idclasses_skel); }