@@ -57,37 +57,31 @@ macro_rules! create_counter {
57
57
#[ macro_export]
58
58
macro_rules! inc_counter {
59
59
( $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)
64
61
} ;
65
62
}
66
63
67
64
#[ macro_export]
68
65
macro_rules! inc_counter_info {
69
66
( $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
+ }
75
70
} ;
76
71
}
77
72
78
73
#[ macro_export]
79
74
macro_rules! inc_new_counter {
80
75
( $name: expr, $count: expr, $level: expr, $lograte: expr, $metricsrate: expr) => { {
81
76
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
88
82
} ) ;
89
- }
90
- inc_counter! ( INC_NEW_COUNTER , $level, $count) ;
83
+
84
+ INC_NEW_COUNTER . inc ( $level, $count) ;
91
85
}
92
86
} } ;
93
87
}
@@ -172,7 +166,7 @@ impl Counter {
172
166
self . metricsrate
173
167
. compare_and_swap ( 0 , Self :: default_metrics_rate ( ) , Ordering :: Relaxed ) ;
174
168
}
175
- pub fn inc ( & mut self , level : log:: Level , events : usize ) {
169
+ pub fn inc ( & self , level : log:: Level , events : usize ) {
176
170
let now = solana_time_utils:: timestamp ( ) ;
177
171
let counts = self . counts . fetch_add ( events, Ordering :: Relaxed ) ;
178
172
let times = self . times . fetch_add ( 1 , Ordering :: Relaxed ) ;
0 commit comments