diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-12-03 16:44:16 -0800 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-12-10 15:13:12 -0800 |
| commit | 786dea207d5b891d37e596e96dd2f84c4cb59f49 (patch) | |
| tree | f275936b26e6602b11363446fcac5ad3b09dbe92 /src/libextra | |
| parent | 5aad292fb99f7e9a2730b35ed535bda0ab9c6117 (diff) | |
| download | rust-786dea207d5b891d37e596e96dd2f84c4cb59f49.tar.gz rust-786dea207d5b891d37e596e96dd2f84c4cb59f49.zip | |
libextra: Another round of de-`Cell`-ing.
34 uses of `Cell` remain.
Diffstat (limited to 'src/libextra')
| -rw-r--r-- | src/libextra/arc.rs | 6 | ||||
| -rw-r--r-- | src/libextra/future.rs | 9 | ||||
| -rw-r--r-- | src/libextra/test.rs | 3 | ||||
| -rw-r--r-- | src/libextra/workcache.rs | 3 |
4 files changed, 7 insertions, 14 deletions
diff --git a/src/libextra/arc.rs b/src/libextra/arc.rs index d4fa7252f77..58007e491da 100644 --- a/src/libextra/arc.rs +++ b/src/libextra/arc.rs @@ -628,10 +628,10 @@ mod tests { let arc = ~MutexArc::new(false); let arc2 = ~arc.clone(); let (p,c) = comm::oneshot(); - let (c,p) = (Cell::new(c), Cell::new(p)); - do task::spawn || { + let c = Cell::new(c); + do task::spawn { // wait until parent gets in - p.take().recv(); + p.recv(); arc2.access_cond(|state, cond| { *state = true; cond.signal(); diff --git a/src/libextra/future.rs b/src/libextra/future.rs index 5fd720c5018..1a2ac398132 100644 --- a/src/libextra/future.rs +++ b/src/libextra/future.rs @@ -25,7 +25,6 @@ #[allow(missing_doc)]; -use std::cell::Cell; use std::comm::{PortOne, oneshot}; use std::util::replace; @@ -113,9 +112,8 @@ impl<A:Send> Future<A> { * waiting for the result to be received on the port. */ - let port = Cell::new(port); do Future::from_fn { - port.take().recv() + port.recv() } } @@ -141,7 +139,6 @@ impl<A:Send> Future<A> { mod test { use future::Future; - use std::cell::Cell; use std::comm::oneshot; use std::task; @@ -199,9 +196,9 @@ mod test { #[test] fn test_sendable_future() { let expected = "schlorf"; - let f = Cell::new(do Future::spawn { expected }); + let f = do Future::spawn { expected }; do task::spawn { - let mut f = f.take(); + let mut f = f; let actual = f.get(); assert_eq!(actual, expected); } diff --git a/src/libextra/test.rs b/src/libextra/test.rs index 818cc49511f..1bda69360c2 100644 --- a/src/libextra/test.rs +++ b/src/libextra/test.rs @@ -872,7 +872,6 @@ pub fn run_test(force_ignore: bool, fn run_test_inner(desc: TestDesc, monitor_ch: SharedChan<MonitorMsg>, testfn: proc()) { - let testfn_cell = ::std::cell::Cell::new(testfn); do task::spawn { let mut task = task::task(); task.name(match desc.name { @@ -880,7 +879,7 @@ pub fn run_test(force_ignore: bool, StaticTestName(name) => SendStrStatic(name), }); let result_future = task.future_result(); - task.spawn(testfn_cell.take()); + task.spawn(testfn); let task_result = result_future.recv(); let test_result = calc_result(&desc, task_result.is_ok()); diff --git a/src/libextra/workcache.rs b/src/libextra/workcache.rs index 0afc8c08d4c..1487cee75cc 100644 --- a/src/libextra/workcache.rs +++ b/src/libextra/workcache.rs @@ -15,7 +15,6 @@ use json::ToJson; use serialize::{Encoder, Encodable, Decoder, Decodable}; use arc::{Arc,RWArc}; use treemap::TreeMap; -use std::cell::Cell; use std::comm::{PortOne, oneshot}; use std::{str, task}; use std::io; @@ -430,7 +429,6 @@ impl<'self> Prep<'self> { debug!("Cache miss!"); let (port, chan) = oneshot(); let blk = bo.take_unwrap(); - let chan = Cell::new(chan); // XXX: What happens if the task fails? do task::spawn { @@ -438,7 +436,6 @@ impl<'self> Prep<'self> { discovered_inputs: WorkMap::new(), discovered_outputs: WorkMap::new(), }; - let chan = chan.take(); let v = blk(&mut exe); chan.send((exe, v)); } |
