Esempio n. 1
0
static void /* assumes exclusive access to bucket */
dynstats_destroyCountersIn(dynstats_bucket_t *b, htable *table, dynstats_ctr_t *ctrs) {
	dynstats_ctr_t *ctr;
	int ctrs_purged = 0;
	hashtable_destroy(table, 0);
	while (ctrs != NULL) {
		ctr = ctrs;
		ctrs = ctrs->next;
		dynstats_destroyCtr(ctr);
		ctrs_purged++;
	}
	STATSCOUNTER_ADD(b->ctrMetricsPurged, b->mutCtrMetricsPurged, ctrs_purged);
	ATOMIC_SUB(&b->metricCount, ctrs_purged, &b->mutMetricCount);
}
Esempio n. 2
0
static inline void /* assumes exclusive access to bucket */
dynstats_destroyCounters(dynstats_bucket_t *b) {
	dynstats_ctr_t *ctr;

    hashtable_destroy(b->table, 0);
	statsobj.DestructAllCounters(b->stats);
	while(1) {
        ctr = b->ctrs;
		if (ctr == NULL) {
			break;
		} else {
            b->ctrs = ctr->next;
			dynstats_destroyCtr(b, ctr, 0);
		}
	}
	STATSCOUNTER_BUMP(b->ctrMetricsPurged, b->mutCtrMetricsPurged, b->metricCount);
}