Skip to content

Commit 2837bca

Browse files
authored
Replaces static mutable references in metrics counter (anza-xyz#4408)
1 parent 9861e66 commit 2837bca

File tree

1 file changed

+12
-18
lines changed

1 file changed

+12
-18
lines changed

metrics/src/counter.rs

+12-18
Original file line numberDiff line numberDiff line change
@@ -57,37 +57,31 @@ macro_rules! create_counter {
5757
#[macro_export]
5858
macro_rules! inc_counter {
5959
($name:expr, $level:expr, $count:expr) => {
60-
#[allow(clippy::macro_metavars_in_unsafe)]
61-
unsafe {
62-
$name.inc($level, $count)
63-
};
60+
$name.inc($level, $count)
6461
};
6562
}
6663

6764
#[macro_export]
6865
macro_rules! inc_counter_info {
6966
($name:expr, $count:expr) => {
70-
unsafe {
71-
if log_enabled!(log::Level::Info) {
72-
$name.inc(log::Level::Info, $count)
73-
}
74-
};
67+
if log_enabled!(log::Level::Info) {
68+
$name.inc(log::Level::Info, $count)
69+
}
7570
};
7671
}
7772

7873
#[macro_export]
7974
macro_rules! inc_new_counter {
8075
($name:expr, $count:expr, $level:expr, $lograte:expr, $metricsrate:expr) => {{
8176
if log_enabled!($level) {
82-
static mut INC_NEW_COUNTER: $crate::counter::Counter =
83-
create_counter!($name, $lograte, $metricsrate);
84-
static INIT_HOOK: std::sync::Once = std::sync::Once::new();
85-
unsafe {
86-
INIT_HOOK.call_once(|| {
87-
INC_NEW_COUNTER.init();
77+
static INC_NEW_COUNTER: std::sync::LazyLock<$crate::counter::Counter> =
78+
std::sync::LazyLock::new(|| {
79+
let mut counter = create_counter!($name, $lograte, $metricsrate);
80+
counter.init();
81+
counter
8882
});
89-
}
90-
inc_counter!(INC_NEW_COUNTER, $level, $count);
83+
84+
INC_NEW_COUNTER.inc($level, $count);
9185
}
9286
}};
9387
}
@@ -172,7 +166,7 @@ impl Counter {
172166
self.metricsrate
173167
.compare_and_swap(0, Self::default_metrics_rate(), Ordering::Relaxed);
174168
}
175-
pub fn inc(&mut self, level: log::Level, events: usize) {
169+
pub fn inc(&self, level: log::Level, events: usize) {
176170
let now = solana_time_utils::timestamp();
177171
let counts = self.counts.fetch_add(events, Ordering::Relaxed);
178172
let times = self.times.fetch_add(1, Ordering::Relaxed);

0 commit comments

Comments
 (0)