about summary refs log tree commit diff
path: root/src/libextra
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-12-03 16:44:16 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-12-10 15:13:12 -0800
commit786dea207d5b891d37e596e96dd2f84c4cb59f49 (patch)
treef275936b26e6602b11363446fcac5ad3b09dbe92 /src/libextra
parent5aad292fb99f7e9a2730b35ed535bda0ab9c6117 (diff)
downloadrust-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.rs6
-rw-r--r--src/libextra/future.rs9
-rw-r--r--src/libextra/test.rs3
-rw-r--r--src/libextra/workcache.rs3
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));
                 }