mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 14:35:26 +00:00
Return the old counter value in isc_stats_increment
Returning the value allows for better high-water tracking without running into edge cases like the following: 0. The counter is at value X 1. Increment the value (X+1) 2. The value is decreased multiple times in another threads (X+1-Y) 3. Get the value (X+1-Y) 4. Update-if-greater misses the X+1 value which should have been the high-water
This commit is contained in:
@@ -124,7 +124,7 @@ ns_stats_detach(ns_stats_t **statsp);
|
||||
void
|
||||
ns_stats_create(isc_mem_t *mctx, int ncounters, ns_stats_t **statsp);
|
||||
|
||||
void
|
||||
isc_statscounter_t
|
||||
ns_stats_increment(ns_stats_t *stats, isc_statscounter_t counter);
|
||||
|
||||
void
|
||||
|
@@ -78,11 +78,11 @@ ns_stats_create(isc_mem_t *mctx, int ncounters, ns_stats_t **statsp) {
|
||||
/*%
|
||||
* Increment/Decrement methods
|
||||
*/
|
||||
void
|
||||
isc_statscounter_t
|
||||
ns_stats_increment(ns_stats_t *stats, isc_statscounter_t counter) {
|
||||
REQUIRE(NS_STATS_VALID(stats));
|
||||
|
||||
isc_stats_increment(stats->counters, counter);
|
||||
return (isc_stats_increment(stats->counters, counter));
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user