@@ -9,7 +9,7 @@ use core::fmt;
9
9
use std:: collections:: { HashMap , HashSet } ;
10
10
use std:: mem:: take;
11
11
use std:: ops:: { Add , AddAssign , DerefMut , Sub } ;
12
- use std:: sync:: atomic:: { AtomicBool , AtomicI64 , AtomicU64 , AtomicUsize , Ordering } ;
12
+ use std:: sync:: atomic:: Ordering ;
13
13
use std:: sync:: { Arc , RwLock } ;
14
14
15
15
use aggregate:: is_under_cardinality_limit;
@@ -18,6 +18,12 @@ pub(crate) use exponential_histogram::{EXPO_MAX_SCALE, EXPO_MIN_SCALE};
18
18
use once_cell:: sync:: Lazy ;
19
19
use opentelemetry:: { otel_warn, KeyValue } ;
20
20
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
+
21
27
use crate :: metrics:: AttributeSet ;
22
28
23
29
pub ( crate ) static STREAM_OVERFLOW_ATTRIBUTES : Lazy < Vec < KeyValue > > =
@@ -410,8 +416,8 @@ mod tests {
410
416
#[ test]
411
417
fn can_add_and_get_u64_atomic_value ( ) {
412
418
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 ) ;
415
421
416
422
let value = atomic. get_value ( ) ;
417
423
assert_eq ! ( value, 25 ) ;
@@ -420,7 +426,7 @@ mod tests {
420
426
#[ test]
421
427
fn can_reset_u64_atomic_value ( ) {
422
428
let atomic = u64:: new_atomic_tracker ( 0 ) ;
423
- atomic . add ( 15 ) ;
429
+ AtomicTracker :: add ( & atomic , 15 ) ;
424
430
425
431
let value = atomic. get_and_reset_value ( ) ;
426
432
let value2 = atomic. get_value ( ) ;
@@ -449,8 +455,8 @@ mod tests {
449
455
#[ test]
450
456
fn can_add_and_get_i64_atomic_value ( ) {
451
457
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 ) ;
454
460
455
461
let value = atomic. get_value ( ) ;
456
462
assert_eq ! ( value, 5 ) ;
@@ -459,7 +465,7 @@ mod tests {
459
465
#[ test]
460
466
fn can_reset_i64_atomic_value ( ) {
461
467
let atomic = i64:: new_atomic_tracker ( 0 ) ;
462
- atomic . add ( 15 ) ;
468
+ AtomicTracker :: add ( & atomic , 15 ) ;
463
469
464
470
let value = atomic. get_and_reset_value ( ) ;
465
471
let value2 = atomic. get_value ( ) ;
0 commit comments