diff --git a/src/libcore/atomic.rs b/src/libcore/atomic.rs index ed35e0954921..02f9ee506f99 100644 --- a/src/libcore/atomic.rs +++ b/src/libcore/atomic.rs @@ -78,12 +78,20 @@ use intrinsics; use cell::UnsafeCell; use marker::PhantomData; +use default::Default; + /// A boolean type which can be safely shared between threads. #[stable(feature = "rust1", since = "1.0.0")] pub struct AtomicBool { v: UnsafeCell, } +impl Default for AtomicBool { + fn default() -> AtomicBool { + ATOMIC_BOOL_INIT + } +} + unsafe impl Sync for AtomicBool {} /// A signed integer type which can be safely shared between threads. @@ -92,6 +100,12 @@ pub struct AtomicIsize { v: UnsafeCell, } +impl Default for AtomicIsize { + fn default() -> AtomicIsize { + ATOMIC_ISIZE_INIT + } +} + unsafe impl Sync for AtomicIsize {} /// An unsigned integer type which can be safely shared between threads. @@ -100,6 +114,12 @@ pub struct AtomicUsize { v: UnsafeCell, } +impl Default for AtomicUsize { + fn default() -> AtomicUsize { + ATOMIC_USIZE_INIT + } +} + unsafe impl Sync for AtomicUsize {} /// A raw pointer type which can be safely shared between threads.