diff options
| author | oliver-giersch <oliver.giersch@googlemail.com> | 2018-10-15 14:38:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-15 14:38:34 +0200 |
| commit | 30bfdc872020c6addcb2ea488b2a6dbdd5ef355a (patch) | |
| tree | 9c2ccdcdd23848de81e3cbf54be11ea029ba1614 /src/libstd/thread | |
| parent | 3527d1d5298fafe6d9e480f95e47f970f1b3adc1 (diff) | |
| parent | 5891a64165ea4819ca331f5a35f5318a91e1be3f (diff) | |
| download | rust-30bfdc872020c6addcb2ea488b2a6dbdd5ef355a.tar.gz rust-30bfdc872020c6addcb2ea488b2a6dbdd5ef355a.zip | |
Merge pull request #5 from oliver-giersch/master
sync with upstream
Diffstat (limited to 'src/libstd/thread')
| -rw-r--r-- | src/libstd/thread/local.rs | 14 | ||||
| -rw-r--r-- | src/libstd/thread/mod.rs | 2 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/libstd/thread/local.rs b/src/libstd/thread/local.rs index a170abb2628..59f100fad1b 100644 --- a/src/libstd/thread/local.rs +++ b/src/libstd/thread/local.rs @@ -172,16 +172,22 @@ macro_rules! __thread_local_inner { &'static $crate::cell::UnsafeCell< $crate::option::Option<$t>>> { - #[cfg(target_arch = "wasm32")] + #[cfg(all(target_arch = "wasm32", not(target_feature = "atomics")))] static __KEY: $crate::thread::__StaticLocalKeyInner<$t> = $crate::thread::__StaticLocalKeyInner::new(); #[thread_local] - #[cfg(all(target_thread_local, not(target_arch = "wasm32")))] + #[cfg(all( + target_thread_local, + not(all(target_arch = "wasm32", not(target_feature = "atomics"))), + ))] static __KEY: $crate::thread::__FastLocalKeyInner<$t> = $crate::thread::__FastLocalKeyInner::new(); - #[cfg(all(not(target_thread_local), not(target_arch = "wasm32")))] + #[cfg(all( + not(target_thread_local), + not(all(target_arch = "wasm32", not(target_feature = "atomics"))), + ))] static __KEY: $crate::thread::__OsLocalKeyInner<$t> = $crate::thread::__OsLocalKeyInner::new(); @@ -302,7 +308,7 @@ impl<T: 'static> LocalKey<T> { /// On some platforms like wasm32 there's no threads, so no need to generate /// thread locals and we can instead just use plain statics! #[doc(hidden)] -#[cfg(target_arch = "wasm32")] +#[cfg(all(target_arch = "wasm32", not(target_feature = "atomics")))] pub mod statik { use cell::UnsafeCell; use fmt; diff --git a/src/libstd/thread/mod.rs b/src/libstd/thread/mod.rs index 8df9bee0eb4..dc2d12bf2c4 100644 --- a/src/libstd/thread/mod.rs +++ b/src/libstd/thread/mod.rs @@ -203,7 +203,7 @@ pub use self::local::{LocalKey, AccessError}; // where available, but both are needed. #[unstable(feature = "libstd_thread_internals", issue = "0")] -#[cfg(target_arch = "wasm32")] +#[cfg(all(target_arch = "wasm32", not(target_feature = "atomics")))] #[doc(hidden)] pub use self::local::statik::Key as __StaticLocalKeyInner; #[unstable(feature = "libstd_thread_internals", issue = "0")] #[cfg(target_thread_local)] |
