@@ -9,7 +9,7 @@ use core::fmt;
99use std:: collections:: { HashMap , HashSet } ;
1010use std:: mem:: take;
1111use std:: ops:: { Add , AddAssign , DerefMut , Sub } ;
12- use std:: sync:: atomic:: { AtomicBool , AtomicI64 , AtomicU64 , AtomicUsize , Ordering } ;
12+ use std:: sync:: atomic:: Ordering ;
1313use std:: sync:: { Arc , RwLock } ;
1414
1515use aggregate:: is_under_cardinality_limit;
@@ -18,6 +18,12 @@ pub(crate) use exponential_histogram::{EXPO_MAX_SCALE, EXPO_MIN_SCALE};
1818use once_cell:: sync:: Lazy ;
1919use opentelemetry:: { otel_warn, KeyValue } ;
2020
21+ #[ cfg( any( target_arch = "mips" , target_arch = "powerpc" ) ) ]
22+ use portable_atomic:: { AtomicBool , AtomicI64 , AtomicU64 , AtomicUsize } ;
23+
24+ #[ cfg( not( any( target_arch = "mips" , target_arch = "powerpc" ) ) ) ]
25+ use std:: sync:: atomic:: { AtomicBool , AtomicI64 , AtomicU64 , AtomicUsize } ;
26+
2127use crate :: metrics:: AttributeSet ;
2228
2329pub ( crate ) static STREAM_OVERFLOW_ATTRIBUTES : Lazy < Vec < KeyValue > > =
@@ -410,8 +416,8 @@ mod tests {
410416 #[ test]
411417 fn can_add_and_get_u64_atomic_value ( ) {
412418 let atomic = u64:: new_atomic_tracker ( 0 ) ;
413- atomic . add ( 15 ) ;
414- atomic . add ( 10 ) ;
419+ AtomicTracker :: add ( & atomic , 15 ) ;
420+ AtomicTracker :: add ( & atomic , 10 ) ;
415421
416422 let value = atomic. get_value ( ) ;
417423 assert_eq ! ( value, 25 ) ;
@@ -420,7 +426,7 @@ mod tests {
420426 #[ test]
421427 fn can_reset_u64_atomic_value ( ) {
422428 let atomic = u64:: new_atomic_tracker ( 0 ) ;
423- atomic . add ( 15 ) ;
429+ AtomicTracker :: add ( & atomic , 15 ) ;
424430
425431 let value = atomic. get_and_reset_value ( ) ;
426432 let value2 = atomic. get_value ( ) ;
@@ -449,8 +455,8 @@ mod tests {
449455 #[ test]
450456 fn can_add_and_get_i64_atomic_value ( ) {
451457 let atomic = i64:: new_atomic_tracker ( 0 ) ;
452- atomic . add ( 15 ) ;
453- atomic . add ( -10 ) ;
458+ AtomicTracker :: add ( & atomic , 15 ) ;
459+ AtomicTracker :: add ( & atomic , -10 ) ;
454460
455461 let value = atomic. get_value ( ) ;
456462 assert_eq ! ( value, 5 ) ;
@@ -459,7 +465,7 @@ mod tests {
459465 #[ test]
460466 fn can_reset_i64_atomic_value ( ) {
461467 let atomic = i64:: new_atomic_tracker ( 0 ) ;
462- atomic . add ( 15 ) ;
468+ AtomicTracker :: add ( & atomic , 15 ) ;
463469
464470 let value = atomic. get_and_reset_value ( ) ;
465471 let value2 = atomic. get_value ( ) ;
0 commit comments