From caf27215d1087f3ee77b1e6376b4bba7f80ecd65 Mon Sep 17 00:00:00 2001 From: Costa Tsaousis Date: Fri, 29 Dec 2023 13:43:49 +0200 Subject: [PATCH] atomically load the metric reference count (#16687) --- database/engine/metric.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/database/engine/metric.c b/database/engine/metric.c index 4ff080d5b6aa10..97829da82515c9 100644 --- a/database/engine/metric.c +++ b/database/engine/metric.c @@ -132,7 +132,7 @@ static inline time_t mrg_metric_get_first_time_s_smart(MRG *mrg __maybe_unused, static inline REFCOUNT metric_acquire(MRG *mrg __maybe_unused, METRIC *metric) { size_t partition = metric->partition; - REFCOUNT expected = metric->refcount; + REFCOUNT expected = __atomic_load_n(&metric->refcount, __ATOMIC_RELAXED); REFCOUNT refcount; do { @@ -152,7 +152,7 @@ static inline REFCOUNT metric_acquire(MRG *mrg __maybe_unused, METRIC *metric) { static inline bool metric_release_and_can_be_deleted(MRG *mrg __maybe_unused, METRIC *metric) { size_t partition = metric->partition; - REFCOUNT expected = metric->refcount; + REFCOUNT expected = __atomic_load_n(&metric->refcount, __ATOMIC_RELAXED); REFCOUNT refcount; do {