diff options
| author | bors <bors@rust-lang.org> | 2013-08-27 13:20:47 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-08-27 13:20:47 -0700 |
| commit | 3ab0561b00d2993706d11bfbbce4a357110195dd (patch) | |
| tree | 7536debfcd076b92e9eb6b0c8b871eac1be22129 /src/libextra | |
| parent | c822d1070ac39871165df30ac8d09e733a6e7fb9 (diff) | |
| parent | a79575529de2c6c74b430cd2d9e2d8833eac2f82 (diff) | |
| download | rust-3ab0561b00d2993706d11bfbbce4a357110195dd.tar.gz rust-3ab0561b00d2993706d11bfbbce4a357110195dd.zip | |
auto merge of #8790 : huonw/rust/unsafearc, r=thestinger
`UnsafeAtomicRcBox` → `UnsafeArc` (#7674), and `AtomicRcBoxData` → `ArcData` to reflect this. Also, the inner pointer of `UnsafeArc` is now `*mut ArcData`, which avoids some transmutes to `~`: i.e. less chance of mistakes.
Diffstat (limited to 'src/libextra')
| -rw-r--r-- | src/libextra/arc.rs | 14 | ||||
| -rw-r--r-- | src/libextra/sync.rs | 6 |
2 files changed, 10 insertions, 10 deletions
diff --git a/src/libextra/arc.rs b/src/libextra/arc.rs index 1df69945a60..792fb7f9ca7 100644 --- a/src/libextra/arc.rs +++ b/src/libextra/arc.rs @@ -44,7 +44,7 @@ use sync; use sync::{Mutex, RWLock}; use std::cast; -use std::unstable::sync::UnsafeAtomicRcBox; +use std::unstable::sync::UnsafeArc; use std::task; use std::borrow; @@ -108,7 +108,7 @@ impl<'self> Condvar<'self> { ****************************************************************************/ /// An atomically reference counted wrapper for shared immutable state. -pub struct Arc<T> { priv x: UnsafeAtomicRcBox<T> } +pub struct Arc<T> { priv x: UnsafeArc<T> } /** @@ -118,7 +118,7 @@ pub struct Arc<T> { priv x: UnsafeAtomicRcBox<T> } impl<T:Freeze+Send> Arc<T> { /// Create an atomically reference counted wrapper. pub fn new(data: T) -> Arc<T> { - Arc { x: UnsafeAtomicRcBox::new(data) } + Arc { x: UnsafeArc::new(data) } } pub fn get<'a>(&'a self) -> &'a T { @@ -160,7 +160,7 @@ impl<T:Freeze + Send> Clone for Arc<T> { #[doc(hidden)] struct MutexArcInner<T> { priv lock: Mutex, priv failed: bool, priv data: T } /// An Arc with mutable data protected by a blocking mutex. -struct MutexArc<T> { priv x: UnsafeAtomicRcBox<MutexArcInner<T>> } +struct MutexArc<T> { priv x: UnsafeArc<MutexArcInner<T>> } impl<T:Send> Clone for MutexArc<T> { @@ -187,7 +187,7 @@ impl<T:Send> MutexArc<T> { lock: Mutex::new_with_condvars(num_condvars), failed: false, data: user_data }; - MutexArc { x: UnsafeAtomicRcBox::new(data) } + MutexArc { x: UnsafeArc::new(data) } } /** @@ -309,7 +309,7 @@ struct RWArcInner<T> { priv lock: RWLock, priv failed: bool, priv data: T } */ #[no_freeze] struct RWArc<T> { - priv x: UnsafeAtomicRcBox<RWArcInner<T>>, + priv x: UnsafeArc<RWArcInner<T>>, } impl<T:Freeze + Send> Clone for RWArc<T> { @@ -335,7 +335,7 @@ impl<T:Freeze + Send> RWArc<T> { lock: RWLock::new_with_condvars(num_condvars), failed: false, data: user_data }; - RWArc { x: UnsafeAtomicRcBox::new(data), } + RWArc { x: UnsafeArc::new(data), } } /** diff --git a/src/libextra/sync.rs b/src/libextra/sync.rs index 1952c35eb9d..d8c2f0223b7 100644 --- a/src/libextra/sync.rs +++ b/src/libextra/sync.rs @@ -21,7 +21,7 @@ use std::comm; use std::comm::SendDeferred; use std::comm::{GenericPort, Peekable}; use std::task; -use std::unstable::sync::{Exclusive, UnsafeAtomicRcBox}; +use std::unstable::sync::{Exclusive, UnsafeArc}; use std::unstable::atomics; use std::unstable::finally::Finally; use std::util; @@ -444,7 +444,7 @@ struct RWLockInner { pub struct RWLock { priv order_lock: Semaphore, priv access_lock: Sem<~[WaitQueue]>, - priv state: UnsafeAtomicRcBox<RWLockInner>, + priv state: UnsafeArc<RWLockInner>, } impl RWLock { @@ -456,7 +456,7 @@ impl RWLock { * Similar to mutex_with_condvars. */ pub fn new_with_condvars(num_condvars: uint) -> RWLock { - let state = UnsafeAtomicRcBox::new(RWLockInner { + let state = UnsafeArc::new(RWLockInner { read_mode: false, read_count: atomics::AtomicUint::new(0), }); |
