void hc_resolver_destroy(struct hc_resolver_s *r) { if (!r) return; if (r->csm0.cache) lru_tree_destroy(r->csm0.cache); if (r->services.cache) lru_tree_destroy(r->services.cache); g_mutex_clear(&r->lock); g_free(r); }
int main(int argc, char **argv) { struct lru_tree_s *lt; (void) argc; (void) argv; lt = lru_tree_create((GCompareFunc)g_strcmp0, g_free, NULL, 0); g_assert(lt != NULL); lru_tree_insert(lt, g_strdup("plop"), GINT_TO_POINTER(1)); lru_tree_insert(lt, g_strdup("plop"), GINT_TO_POINTER(1)); lru_tree_insert(lt, g_strdup("plip"), GINT_TO_POINTER(1)); lru_tree_insert(lt, g_strdup("plup"), GINT_TO_POINTER(1)); lru_tree_get(lt, "plop"); lru_tree_get(lt, "plop"); lru_tree_get(lt, "plop"); lru_tree_get(lt, "plop"); gpointer k, v; while (lru_tree_steal_first(lt, &k, &v)) { g_printerr("K %s %p\n", (gchar*)k, v); g_free(k); } lru_tree_destroy(lt); return 0; }