atomically load the metric reference count (#16687)
Costa Tsaousis committed
Dec 29, 2023 at 13:43 UTC
caf27215d1087f3ee77b1e6376b4bba7f80ecd65
1 file changed
+2
-2
database/engine/metric.c
+2
-2
@@ -132,7 +132,7 @@ static inline time_t mrg_metric_get_first_time_s_smart(MRG *mrg __maybe_unused,
132
133
static inline REFCOUNT metric_acquire(MRG *mrg __maybe_unused, METRIC *metric) {
134
size_t partition = metric->partition;
135
- REFCOUNT expected = metric->refcount;
135
+ REFCOUNT expected = __atomic_load_n(&metric->refcount, __ATOMIC_RELAXED);
136
REFCOUNT refcount;
137
138
do {
@@ -152,7 +152,7 @@ static inline REFCOUNT metric_acquire(MRG *mrg __maybe_unused, METRIC *metric) {
152
153
static inline bool metric_release_and_can_be_deleted(MRG *mrg __maybe_unused, METRIC *metric) {
154
size_t partition = metric->partition;
155
- REFCOUNT expected = metric->refcount;
155
+ REFCOUNT expected = __atomic_load_n(&metric->refcount, __ATOMIC_RELAXED);
156
REFCOUNT refcount;
157
158
do {