diff options
Diffstat (limited to 'src/liballoc/task.rs')
| -rw-r--r-- | src/liballoc/task.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/liballoc/task.rs b/src/liballoc/task.rs index f14fe3a20da..9792d52dd66 100644 --- a/src/liballoc/task.rs +++ b/src/liballoc/task.rs @@ -12,10 +12,16 @@ pub use core::task::*; -#[cfg(target_has_atomic = "ptr")] +#[cfg(any( + all(stage0, target_has_atomic = "ptr"), + all(not(stage0), target_has_atomic = "ptr", target_has_atomic = "cas") +))] pub use self::if_arc::*; -#[cfg(target_has_atomic = "ptr")] +#[cfg(any( + all(stage0, target_has_atomic = "ptr"), + all(not(stage0), target_has_atomic = "ptr", target_has_atomic = "cas") +))] mod if_arc { use super::*; use core::marker::PhantomData; @@ -47,7 +53,10 @@ mod if_arc { } } - #[cfg(target_has_atomic = "ptr")] + #[cfg(any( + all(stage0, target_has_atomic = "ptr"), + all(not(stage0), target_has_atomic = "ptr", target_has_atomic = "cas") + ))] struct ArcWrapped<T>(PhantomData<T>); unsafe impl<T: Wake + 'static> UnsafeWake for ArcWrapped<T> { |
