about summary refs log tree commit diff
path: root/src/libstd/rt
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-12-04 14:43:02 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-12-10 15:13:12 -0800
commitab3bec91d77150e434ac1480fbb3935213e33dca (patch)
treef0060ee28e481bd72a2c767a55efdebe63db3748 /src/libstd/rt
parent7cac9fe76349120ea2373f3ce47a561271b5e8b6 (diff)
downloadrust-ab3bec91d77150e434ac1480fbb3935213e33dca.tar.gz
rust-ab3bec91d77150e434ac1480fbb3935213e33dca.zip
libstd: Remove some cells involved in
`deschedule_running_task_and_then`.
Diffstat (limited to 'src/libstd/rt')
-rw-r--r--src/libstd/rt/tube.rs16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/libstd/rt/tube.rs b/src/libstd/rt/tube.rs
index 15d8c7f9aac..5e867bcdfba 100644
--- a/src/libstd/rt/tube.rs
+++ b/src/libstd/rt/tube.rs
@@ -88,7 +88,6 @@ impl<T> Clone for Tube<T> {
 
 #[cfg(test)]
 mod test {
-    use cell::Cell;
     use rt::test::*;
     use rt::rtio::EventLoop;
     use rt::sched::Scheduler;
@@ -100,11 +99,10 @@ mod test {
     fn simple_test() {
         do run_in_newsched_task {
             let mut tube: Tube<int> = Tube::new();
-            let tube_clone = tube.clone();
-            let tube_clone_cell = Cell::new(tube_clone);
+            let mut tube_clone = Some(tube.clone());
             let sched: ~Scheduler = Local::take();
             sched.deschedule_running_task_and_then(|sched, task| {
-                let mut tube_clone = tube_clone_cell.take();
+                let mut tube_clone = tube_clone.take_unwrap();
                 tube_clone.send(1);
                 sched.enqueue_blocked_task(task);
             });
@@ -117,11 +115,10 @@ mod test {
     fn blocking_test() {
         do run_in_newsched_task {
             let mut tube: Tube<int> = Tube::new();
-            let tube_clone = tube.clone();
-            let tube_clone = Cell::new(tube_clone);
+            let mut tube_clone = Some(tube.clone());
             let sched: ~Scheduler = Local::take();
             sched.deschedule_running_task_and_then(|sched, task| {
-                let tube_clone = tube_clone.take();
+                let tube_clone = tube_clone.take_unwrap();
                 do sched.event_loop.callback {
                     let mut tube_clone = tube_clone;
                     // The task should be blocked on this now and
@@ -141,11 +138,10 @@ mod test {
 
         do run_in_newsched_task {
             let mut tube: Tube<int> = Tube::new();
-            let tube_clone = tube.clone();
-            let tube_clone = Cell::new(tube_clone);
+            let mut tube_clone = Some(tube.clone());
             let sched: ~Scheduler = Local::take();
             sched.deschedule_running_task_and_then(|sched, task| {
-                callback_send(tube_clone.take(), 0);
+                callback_send(tube_clone.take_unwrap(), 0);
 
                 fn callback_send(tube: Tube<int>, i: int) {
                     if i == 100 {