static void test_stats_foreach_counter_never_forgets_untracked_counters(void) { StatsCluster *sc = stats_cluster_new(SCS_SOURCE | SCS_FILE, "id", "instance"); StatsCounterItem *processed, *stamp; processed = stats_cluster_track_counter(sc, SC_TYPE_PROCESSED); stamp = stats_cluster_track_counter(sc, SC_TYPE_STAMP); stats_cluster_untrack_counter(sc, SC_TYPE_PROCESSED, &processed); assert_stats_foreach_yielded_counters_matches(sc, SC_TYPE_PROCESSED, SC_TYPE_STAMP, -1); stats_cluster_untrack_counter(sc, SC_TYPE_STAMP, &stamp); assert_stats_foreach_yielded_counters_matches(sc, SC_TYPE_PROCESSED, SC_TYPE_STAMP, -1); stats_cluster_free(sc); }
void stats_unregister_counter(gint component, const gchar *id, const gchar *instance, StatsCounterType type, StatsCounterItem **counter) { StatsCluster *sc; StatsCluster key; g_assert(stats_locked); if (*counter == NULL) return; if (!id) id = ""; if (!instance) instance = ""; key.component = component; key.id = (gchar *) id; key.instance = (gchar *) instance; sc = g_hash_table_lookup(counter_hash, &key); stats_cluster_untrack_counter(sc, type, counter); }
void stats_unregister_dynamic_counter(StatsCluster *sc, StatsCounterType type, StatsCounterItem **counter) { g_assert(stats_locked); if (!sc) return; stats_cluster_untrack_counter(sc, type, counter); }