diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-12-05 17:34:37 -0800 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-12-10 15:13:13 -0800 |
| commit | 89e1db3d6ce37946afd7115dfcce510261537a85 (patch) | |
| tree | 4ae3327b50138f2f416165a99576372676c22643 /src/libstd/rt | |
| parent | 6bd80f74505a3eb7c44753c69cbe253ff566d5c1 (diff) | |
| download | rust-89e1db3d6ce37946afd7115dfcce510261537a85.tar.gz rust-89e1db3d6ce37946afd7115dfcce510261537a85.zip | |
libstd: Change `atomically` to use RAII.
Diffstat (limited to 'src/libstd/rt')
| -rw-r--r-- | src/libstd/rt/comm.rs | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/libstd/rt/comm.rs b/src/libstd/rt/comm.rs index d6024b7abea..2b1e7865a73 100644 --- a/src/libstd/rt/comm.rs +++ b/src/libstd/rt/comm.rs @@ -565,7 +565,7 @@ impl<'self, T: Send> SelectPortInner<T> for &'self Port<T> { impl<'self, T: Send> SelectPort<T> for &'self Port<T> { } pub struct SharedChan<T> { - // Just like Chan, but a shared AtomicOption instead of Cell + // Just like Chan, but a shared AtomicOption priv next: UnsafeArc<AtomicOption<StreamChanOne<T>>> } @@ -716,7 +716,6 @@ mod test { use super::*; use option::*; use rt::test::*; - use cell::Cell; use num::Times; use rt::util; @@ -1113,7 +1112,7 @@ mod test { #[test] fn send_deferred() { - use unstable::sync::atomically; + use unstable::sync::atomic; // Tests no-rescheduling of send_deferred on all types of channels. do run_in_newsched_task { @@ -1129,15 +1128,12 @@ mod test { let p_mp = mp.clone(); do spawntask { p_mp.recv(); } - let cs = Cell::new((cone, cstream, cshared, mp)); unsafe { - atomically(|| { - let (cone, cstream, cshared, mp) = cs.take(); - cone.send_deferred(()); - cstream.send_deferred(()); - cshared.send_deferred(()); - mp.send_deferred(()); - }) + let _guard = atomic(); + cone.send_deferred(()); + cstream.send_deferred(()); + cshared.send_deferred(()); + mp.send_deferred(()); } } } |
