@@ -6,7 +6,7 @@ use crate::encoding::{EncodeMetric, MetricEncoder};
6
6
7
7
use super :: { MetricType , TypedMetric } ;
8
8
use std:: marker:: PhantomData ;
9
- #[ cfg( not ( any ( target_arch = "mips" , target_arch = "powerpc" ) ) ) ]
9
+ #[ cfg( target_has_atomic = "64" ) ]
10
10
use std:: sync:: atomic:: AtomicU64 ;
11
11
use std:: sync:: atomic:: { AtomicU32 , Ordering } ;
12
12
use std:: sync:: Arc ;
@@ -40,15 +40,15 @@ use std::sync::Arc;
40
40
/// counter.inc();
41
41
/// let _value: f64 = counter.get();
42
42
/// ```
43
- #[ cfg( not ( any ( target_arch = "mips" , target_arch = "powerpc" ) ) ) ]
43
+ #[ cfg( target_has_atomic = "64" ) ]
44
44
#[ derive( Debug ) ]
45
45
pub struct Counter < N = u64 , A = AtomicU64 > {
46
46
value : Arc < A > ,
47
47
phantom : PhantomData < N > ,
48
48
}
49
49
50
50
/// Open Metrics [`Counter`] to measure discrete events.
51
- #[ cfg( any ( target_arch = "mips" , target_arch = "powerpc ") ) ]
51
+ #[ cfg( not ( target_has_atomic = "64 " ) ) ]
52
52
#[ derive( Debug ) ]
53
53
pub struct Counter < N = u32 , A = AtomicU32 > {
54
54
value : Arc < A > ,
@@ -114,7 +114,7 @@ pub trait Atomic<N> {
114
114
fn get ( & self ) -> N ;
115
115
}
116
116
117
- #[ cfg( not ( any ( target_arch = "mips" , target_arch = "powerpc" ) ) ) ]
117
+ #[ cfg( target_has_atomic = "64" ) ]
118
118
impl Atomic < u64 > for AtomicU64 {
119
119
fn inc ( & self ) -> u64 {
120
120
self . inc_by ( 1 )
@@ -143,7 +143,7 @@ impl Atomic<u32> for AtomicU32 {
143
143
}
144
144
}
145
145
146
- #[ cfg( not ( any ( target_arch = "mips" , target_arch = "powerpc" ) ) ) ]
146
+ #[ cfg( target_has_atomic = "64" ) ]
147
147
impl Atomic < f64 > for AtomicU64 {
148
148
fn inc ( & self ) -> f64 {
149
149
self . inc_by ( 1.0 )
@@ -231,7 +231,7 @@ mod tests {
231
231
assert_eq ! ( 1 , counter. get( ) ) ;
232
232
}
233
233
234
- #[ cfg( not ( any ( target_arch = "mips" , target_arch = "powerpc" ) ) ) ]
234
+ #[ cfg( target_has_atomic = "64" ) ]
235
235
#[ test]
236
236
fn f64_stored_in_atomic_u64 ( ) {
237
237
fn prop ( fs : Vec < f64 > ) {
0 commit comments