about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2013-04-01 18:17:16 -0700
committerBrian Anderson <banderson@mozilla.com>2013-04-18 14:07:35 -0700
commitab08b4fbfde7e9cc9e0de07aed17b4d4e06ccc3e (patch)
tree2e3a7fb6cf01cd07ff35f254d43ef00e8beed28c /src
parentb329f2fa82185c9e7c6bbbdf26270dd839618e9c (diff)
downloadrust-ab08b4fbfde7e9cc9e0de07aed17b4d4e06ccc3e.tar.gz
rust-ab08b4fbfde7e9cc9e0de07aed17b4d4e06ccc3e.zip
core: Remove pipes::spawn_service, spawn_service_recv
These are only used in test cases; pipes isn't the right place for them;
they are unnecessary.

Conflicts:
	src/libcore/rt/uv/mod.rs
Diffstat (limited to 'src')
-rw-r--r--src/libcore/pipes.rs46
-rw-r--r--src/test/bench/pingpong.rs49
-rw-r--r--src/test/run-pass/pipe-detect-term.rs10
-rw-r--r--src/test/run-pass/pipe-select.rs22
-rw-r--r--src/test/run-pass/pipe-sleep.rs30
5 files changed, 102 insertions, 55 deletions
diff --git a/src/libcore/pipes.rs b/src/libcore/pipes.rs
index fddb2af5587..fd50ecc5274 100644
--- a/src/libcore/pipes.rs
+++ b/src/libcore/pipes.rs
@@ -83,7 +83,6 @@ bounded and unbounded protocols allows for less code duplication.
 */
 
 use cast::{forget, reinterpret_cast, transmute};
-use cell::Cell;
 use either::{Either, Left, Right};
 use kinds::Owned;
 use libc;
@@ -902,51 +901,6 @@ pub fn entangle<T>() -> (SendPacket<T>, RecvPacket<T>) {
     (SendPacket(p), RecvPacket(p))
 }
 
-/** Spawn a task to provide a service.
-
-It takes an initialization function that produces a send and receive
-endpoint. The send endpoint is returned to the caller and the receive
-endpoint is passed to the new task.
-
-*/
-pub fn spawn_service<T:Owned,Tb:Owned>(
-            init: extern fn() -> (SendPacketBuffered<T, Tb>,
-                                  RecvPacketBuffered<T, Tb>),
-            service: ~fn(v: RecvPacketBuffered<T, Tb>))
-        -> SendPacketBuffered<T, Tb> {
-    let (client, server) = init();
-
-    // This is some nasty gymnastics required to safely move the pipe
-    // into a new task.
-    let server = Cell(server);
-    do task::spawn {
-        service(server.take());
-    }
-
-    client
-}
-
-/** Like `spawn_service_recv`, but for protocols that start in the
-receive state.
-
-*/
-pub fn spawn_service_recv<T:Owned,Tb:Owned>(
-        init: extern fn() -> (RecvPacketBuffered<T, Tb>,
-                              SendPacketBuffered<T, Tb>),
-        service: ~fn(v: SendPacketBuffered<T, Tb>))
-        -> RecvPacketBuffered<T, Tb> {
-    let (client, server) = init();
-
-    // This is some nasty gymnastics required to safely move the pipe
-    // into a new task.
-    let server = Cell(server);
-    do task::spawn {
-        service(server.take())
-    }
-
-    client
-}
-
 pub mod rt {
     use option::{None, Option, Some};
 
diff --git a/src/test/bench/pingpong.rs b/src/test/bench/pingpong.rs
index 731605e82bd..64fb9652cea 100644
--- a/src/test/bench/pingpong.rs
+++ b/src/test/bench/pingpong.rs
@@ -14,7 +14,8 @@
  
 extern mod std;
 
-use core::pipes::{spawn_service, recv};
+use core::cell::Cell;
+use core::pipes::*;
 use std::time::precise_time_s;
 
 proto! pingpong (
@@ -70,6 +71,52 @@ macro_rules! follow (
     )
 )
 
+
+/** Spawn a task to provide a service.
+
+It takes an initialization function that produces a send and receive
+endpoint. The send endpoint is returned to the caller and the receive
+endpoint is passed to the new task.
+
+*/
+pub fn spawn_service<T:Owned,Tb:Owned>(
+            init: extern fn() -> (SendPacketBuffered<T, Tb>,
+                                  RecvPacketBuffered<T, Tb>),
+            service: ~fn(v: RecvPacketBuffered<T, Tb>))
+        -> SendPacketBuffered<T, Tb> {
+    let (client, server) = init();
+
+    // This is some nasty gymnastics required to safely move the pipe
+    // into a new task.
+    let server = Cell(server);
+    do task::spawn {
+        service(server.take());
+    }
+
+    client
+}
+
+/** Like `spawn_service_recv`, but for protocols that start in the
+receive state.
+
+*/
+pub fn spawn_service_recv<T:Owned,Tb:Owned>(
+        init: extern fn() -> (RecvPacketBuffered<T, Tb>,
+                              SendPacketBuffered<T, Tb>),
+        service: ~fn(v: SendPacketBuffered<T, Tb>))
+        -> RecvPacketBuffered<T, Tb> {
+    let (client, server) = init();
+
+    // This is some nasty gymnastics required to safely move the pipe
+    // into a new task.
+    let server = Cell(server);
+    do task::spawn {
+        service(server.take())
+    }
+
+    client
+}
+
 fn switch<T:Owned,Tb:Owned,U>(+endp: core::pipes::RecvPacketBuffered<T, Tb>,
                       f: &fn(+v: Option<T>) -> U) -> U {
     f(core::pipes::try_recv(endp))
diff --git a/src/test/run-pass/pipe-detect-term.rs b/src/test/run-pass/pipe-detect-term.rs
index 6afa9e29349..bd0ffa64590 100644
--- a/src/test/run-pass/pipe-detect-term.rs
+++ b/src/test/run-pass/pipe-detect-term.rs
@@ -18,7 +18,7 @@ extern mod std;
 use std::timer::sleep;
 use std::uv;
 
-use core::pipes;
+use core::cell::Cell;
 use core::pipes::{try_recv, recv};
 
 proto! oneshot (
@@ -30,12 +30,14 @@ proto! oneshot (
 pub fn main() {
     let iotask = &uv::global_loop::get();
     
-    pipes::spawn_service(oneshot::init, |p| { 
-        match try_recv(p) {
+    let (chan, port) = oneshot::init();
+    let port = Cell(port);
+    do spawn {
+        match try_recv(port.take()) {
           Some(*) => { fail!() }
           None => { }
         }
-    });
+    }
 
     sleep(iotask, 100);
 
diff --git a/src/test/run-pass/pipe-select.rs b/src/test/run-pass/pipe-select.rs
index 221ecbfcf02..12d60c9d6ab 100644
--- a/src/test/run-pass/pipe-select.rs
+++ b/src/test/run-pass/pipe-select.rs
@@ -17,8 +17,9 @@ extern mod std;
 use std::timer::sleep;
 use std::uv;
 
+use core::cell::Cell;
 use core::pipes;
-use core::pipes::{recv, select};
+use core::pipes::*;
 
 proto! oneshot (
     waiting:send {
@@ -32,13 +33,30 @@ proto! stream (
     }
 )
 
+pub fn spawn_service<T:Owned,Tb:Owned>(
+            init: extern fn() -> (SendPacketBuffered<T, Tb>,
+                                  RecvPacketBuffered<T, Tb>),
+            service: ~fn(v: RecvPacketBuffered<T, Tb>))
+        -> SendPacketBuffered<T, Tb> {
+    let (client, server) = init();
+
+    // This is some nasty gymnastics required to safely move the pipe
+    // into a new task.
+    let server = Cell(server);
+    do task::spawn {
+        service(server.take());
+    }
+
+    client
+}
+
 pub fn main() {
     use oneshot::client::*;
     use stream::client::*;
 
     let iotask = &uv::global_loop::get();
     
-    let c = pipes::spawn_service(stream::init, |p| { 
+    let c = spawn_service(stream::init, |p| { 
         error!("waiting for pipes");
         let stream::send(x, p) = recv(p);
         error!("got pipes");
diff --git a/src/test/run-pass/pipe-sleep.rs b/src/test/run-pass/pipe-sleep.rs
index 57d72edd0a4..86ffc96e89a 100644
--- a/src/test/run-pass/pipe-sleep.rs
+++ b/src/test/run-pass/pipe-sleep.rs
@@ -13,8 +13,9 @@
 extern mod std;
 use std::timer::sleep;
 use std::uv;
+use core::cell::Cell;
 use core::pipes;
-use core::pipes::recv;
+use core::pipes::*;
 
 proto! oneshot (
     waiting:send {
@@ -22,10 +23,35 @@ proto! oneshot (
     }
 )
 
+
+/** Spawn a task to provide a service.
+
+It takes an initialization function that produces a send and receive
+endpoint. The send endpoint is returned to the caller and the receive
+endpoint is passed to the new task.
+
+*/
+pub fn spawn_service<T:Owned,Tb:Owned>(
+            init: extern fn() -> (SendPacketBuffered<T, Tb>,
+                                  RecvPacketBuffered<T, Tb>),
+            service: ~fn(v: RecvPacketBuffered<T, Tb>))
+        -> SendPacketBuffered<T, Tb> {
+    let (client, server) = init();
+
+    // This is some nasty gymnastics required to safely move the pipe
+    // into a new task.
+    let server = Cell(server);
+    do task::spawn {
+        service(server.take());
+    }
+
+    client
+}
+
 pub fn main() {
     use oneshot::client::*;
 
-    let c = pipes::spawn_service(oneshot::init, |p| { recv(p); });
+    let c = spawn_service(oneshot::init, |p| { recv(p); });
 
     let iotask = &uv::global_loop::get();
     sleep(iotask, 500);