Add atomic_shim to support platforms without 64-bit atomics (#79)

Signed-off-by: Nazar Mishturak <nazarmx@gmail.com>
This commit is contained in:
Nazar Mishturak 2020-07-21 04:39:02 +03:00 committed by GitHub
parent c766fc0d47
commit e003dc97ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 11 additions and 8 deletions

View File

@ -38,6 +38,7 @@ metrics-exporter-http = { path = "../metrics-exporter-http", version = "^0.3", o
metrics-observer-yaml = { path = "../metrics-observer-yaml", version = "^0.1", optional = true }
metrics-observer-prometheus = { path = "../metrics-observer-prometheus", version = "^0.1", optional = true }
metrics-observer-json = { path = "../metrics-observer-json", version = "^0.1", optional = true }
atomic-shim = "0.1.0"
[dev-dependencies]
log = "^0.4"

View File

@ -6,6 +6,7 @@ extern crate hdrhistogram;
extern crate metrics_core;
extern crate metrics_runtime;
use atomic_shim::AtomicU64;
use getopts::Options;
use hdrhistogram::Histogram;
use metrics_runtime::{Receiver, Sink};
@ -13,7 +14,7 @@ use quanta::Clock;
use std::{
env,
sync::{
atomic::{AtomicBool, AtomicU64, Ordering},
atomic::{AtomicBool, Ordering},
Arc,
},
thread,

View File

@ -10,6 +10,7 @@ extern crate tokio;
#[macro_use]
extern crate metrics;
use atomic_shim::AtomicU64;
use getopts::Options;
use hdrhistogram::Histogram;
use metrics_runtime::{exporters::HttpExporter, observers::JsonBuilder, Receiver};
@ -17,7 +18,7 @@ use quanta::Clock;
use std::{
env,
sync::{
atomic::{AtomicBool, AtomicU64, Ordering},
atomic::{AtomicBool, Ordering},
Arc,
},
thread,

View File

@ -4,13 +4,14 @@ extern crate env_logger;
extern crate getopts;
extern crate hdrhistogram;
use atomic_shim::AtomicU64;
use getopts::Options;
use hdrhistogram::Histogram;
use quanta::Clock;
use std::{
env,
sync::{
atomic::{AtomicBool, AtomicU64, Ordering},
atomic::{AtomicBool, Ordering},
Arc,
},
thread,

View File

@ -1,15 +1,13 @@
use crate::data::AtomicWindowedHistogram;
use arc_swap::ArcSwapOption;
use atomic_shim::{AtomicI64, AtomicU64};
use metrics_core::Key;
use metrics_util::StreamingIntegers;
use quanta::Clock;
use std::{
fmt,
ops::Deref,
sync::{
atomic::{AtomicI64, AtomicU64, Ordering},
Arc,
},
sync::{atomic::Ordering, Arc},
time::{Duration, Instant},
};

View File

@ -1,10 +1,11 @@
use crate::common::{Delta, ValueHandle};
use crate::helper::duration_as_nanos;
use atomic_shim::AtomicU64;
use crossbeam_utils::Backoff;
use metrics_util::{AtomicBucket, StreamingIntegers};
use quanta::Clock;
use std::cmp;
use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering};
use std::sync::atomic::{AtomicUsize, Ordering};
use std::time::Duration;
/// A reference to a [`Histogram`].