Add Default trait for AtomicBool, AtomicIsize and AtomicUsize

This commit is contained in:
Guillaume Gomez
2015-04-10 19:23:22 +02:00
parent acb3e5136c
commit f1515fabb0

View File

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