From 7a4c1086b532bc8d3aa7448c2bb8339f4f759290 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Tue, 16 Jul 2019 09:54:00 -0700 Subject: [PATCH] Emscripten does not have 64 bit atomics --- serde/src/de/impls.rs | 9 +++++++-- serde/src/lib.rs | 6 ++++-- serde/src/ser/impls.rs | 9 +++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/serde/src/de/impls.rs b/serde/src/de/impls.rs index 66825b1f..141629a5 100644 --- a/serde/src/de/impls.rs +++ b/serde/src/de/impls.rs @@ -2565,6 +2565,11 @@ macro_rules! atomic_impl { #[cfg(all(feature = "std", std_integer_atomics))] atomic_impl! { AtomicBool - AtomicI8 AtomicI16 AtomicI32 AtomicI64 AtomicIsize - AtomicU8 AtomicU16 AtomicU32 AtomicU64 AtomicUsize + AtomicI8 AtomicI16 AtomicI32 AtomicIsize + AtomicU8 AtomicU16 AtomicU32 AtomicUsize +} + +#[cfg(all(feature = "std", std_integer_atomics, not(target_os = "emscripten")))] +atomic_impl! { + AtomicI64 AtomicU64 } diff --git a/serde/src/lib.rs b/serde/src/lib.rs index e4834fd7..0452bc6d 100644 --- a/serde/src/lib.rs +++ b/serde/src/lib.rs @@ -214,9 +214,11 @@ mod lib { #[cfg(all(feature = "std", std_integer_atomics))] pub use std::sync::atomic::{ - AtomicBool, AtomicI16, AtomicI32, AtomicI64, AtomicI8, AtomicIsize, AtomicU16, AtomicU32, - AtomicU64, AtomicU8, AtomicUsize, Ordering, + AtomicBool, AtomicI16, AtomicI32, AtomicI8, AtomicIsize, AtomicU16, AtomicU32, AtomicU8, + AtomicUsize, Ordering, }; + #[cfg(all(feature = "std", std_integer_atomics, not(target_os = "emscripten")))] + pub use std::sync::atomic::{AtomicI64, AtomicU64}; #[cfg(any(core_duration, feature = "std"))] pub use self::core::time::Duration; diff --git a/serde/src/ser/impls.rs b/serde/src/ser/impls.rs index c2a08efd..619be8b2 100644 --- a/serde/src/ser/impls.rs +++ b/serde/src/ser/impls.rs @@ -861,6 +861,11 @@ macro_rules! atomic_impl { #[cfg(all(feature = "std", std_integer_atomics))] atomic_impl! { AtomicBool - AtomicI8 AtomicI16 AtomicI32 AtomicI64 AtomicIsize - AtomicU8 AtomicU16 AtomicU32 AtomicU64 AtomicUsize + AtomicI8 AtomicI16 AtomicI32 AtomicIsize + AtomicU8 AtomicU16 AtomicU32 AtomicUsize +} + +#[cfg(all(feature = "std", std_integer_atomics, not(target_os = "emscripten")))] +atomic_impl! { + AtomicI64 AtomicU64 }