1
Fork 0

Rename core::comm to core::oldcomm

This commit is contained in:
Brian Anderson 2012-12-13 14:18:47 -08:00
parent 80ef7243ea
commit e6d1b02359
80 changed files with 712 additions and 719 deletions

View file

@ -139,7 +139,7 @@ pub mod send_map;
/* Tasks and communication */ /* Tasks and communication */
pub mod comm; pub mod oldcomm;
#[path = "task/mod.rs"] #[path = "task/mod.rs"]
pub mod task; pub mod task;
pub mod pipes; pub mod pipes;

View file

@ -144,7 +144,7 @@ fn PortPtr<T: Owned>(po: *rust_port) -> PortPtr<T> {
* Fails if the port is detached or dead. Fails if the port * Fails if the port is detached or dead. Fails if the port
* is owned by a different task. * is owned by a different task.
*/ */
fn as_raw_port<T: Owned, U>(ch: comm::Chan<T>, f: fn(*rust_port) -> U) -> U { fn as_raw_port<T: Owned, U>(ch: Chan<T>, f: fn(*rust_port) -> U) -> U {
struct PortRef { struct PortRef {
p: *rust_port, p: *rust_port,
@ -205,11 +205,11 @@ pub fn recv<T: Owned>(p: Port<T>) -> T { recv_((**p).po) }
pub fn peek<T: Owned>(p: Port<T>) -> bool { peek_((**p).po) } pub fn peek<T: Owned>(p: Port<T>) -> bool { peek_((**p).po) }
#[doc(hidden)] #[doc(hidden)]
pub fn recv_chan<T: Owned>(ch: comm::Chan<T>) -> T { pub fn recv_chan<T: Owned>(ch: Chan<T>) -> T {
as_raw_port(ch, |x|recv_(x)) as_raw_port(ch, |x|recv_(x))
} }
fn peek_chan<T: Owned>(ch: comm::Chan<T>) -> bool { fn peek_chan<T: Owned>(ch: Chan<T>) -> bool {
as_raw_port(ch, |x|peek_(x)) as_raw_port(ch, |x|peek_(x))
} }

View file

@ -133,36 +133,36 @@ mod global_env {
} }
enum Msg { enum Msg {
MsgGetEnv(~str, comm::Chan<Option<~str>>), MsgGetEnv(~str, oldcomm::Chan<Option<~str>>),
MsgSetEnv(~str, ~str, comm::Chan<()>), MsgSetEnv(~str, ~str, oldcomm::Chan<()>),
MsgEnv(comm::Chan<~[(~str,~str)]>) MsgEnv(oldcomm::Chan<~[(~str,~str)]>)
} }
pub fn getenv(n: &str) -> Option<~str> { pub fn getenv(n: &str) -> Option<~str> {
let env_ch = get_global_env_chan(); let env_ch = get_global_env_chan();
let po = comm::Port(); let po = oldcomm::Port();
comm::send(env_ch, MsgGetEnv(str::from_slice(n), oldcomm::send(env_ch, MsgGetEnv(str::from_slice(n),
comm::Chan(&po))); oldcomm::Chan(&po)));
comm::recv(po) oldcomm::recv(po)
} }
pub fn setenv(n: &str, v: &str) { pub fn setenv(n: &str, v: &str) {
let env_ch = get_global_env_chan(); let env_ch = get_global_env_chan();
let po = comm::Port(); let po = oldcomm::Port();
comm::send(env_ch, MsgSetEnv(str::from_slice(n), oldcomm::send(env_ch, MsgSetEnv(str::from_slice(n),
str::from_slice(v), str::from_slice(v),
comm::Chan(&po))); oldcomm::Chan(&po)));
comm::recv(po) oldcomm::recv(po)
} }
pub fn env() -> ~[(~str,~str)] { pub fn env() -> ~[(~str,~str)] {
let env_ch = get_global_env_chan(); let env_ch = get_global_env_chan();
let po = comm::Port(); let po = oldcomm::Port();
comm::send(env_ch, MsgEnv(comm::Chan(&po))); oldcomm::send(env_ch, MsgEnv(oldcomm::Chan(&po)));
comm::recv(po) oldcomm::recv(po)
} }
fn get_global_env_chan() -> comm::Chan<Msg> { fn get_global_env_chan() -> oldcomm::Chan<Msg> {
let global_ptr = rustrt::rust_global_env_chan_ptr(); let global_ptr = rustrt::rust_global_env_chan_ptr();
unsafe { unsafe {
private::chan_from_global_ptr(global_ptr, || { private::chan_from_global_ptr(global_ptr, || {
@ -173,19 +173,19 @@ mod global_env {
} }
} }
fn global_env_task(msg_po: comm::Port<Msg>) { fn global_env_task(msg_po: oldcomm::Port<Msg>) {
unsafe { unsafe {
do private::weaken_task |weak_po| { do private::weaken_task |weak_po| {
loop { loop {
match comm::select2(msg_po, weak_po) { match oldcomm::select2(msg_po, weak_po) {
either::Left(MsgGetEnv(ref n, resp_ch)) => { either::Left(MsgGetEnv(ref n, resp_ch)) => {
comm::send(resp_ch, impl_::getenv(*n)) oldcomm::send(resp_ch, impl_::getenv(*n))
} }
either::Left(MsgSetEnv(ref n, ref v, resp_ch)) => { either::Left(MsgSetEnv(ref n, ref v, resp_ch)) => {
comm::send(resp_ch, impl_::setenv(*n, *v)) oldcomm::send(resp_ch, impl_::setenv(*n, *v))
} }
either::Left(MsgEnv(resp_ch)) => { either::Left(MsgEnv(resp_ch)) => {
comm::send(resp_ch, impl_::env()) oldcomm::send(resp_ch, impl_::env())
} }
either::Right(_) => break either::Right(_) => break
} }

View file

@ -55,8 +55,8 @@ fn compare_and_swap(address: &mut int, oldval: int, newval: int) -> bool {
pub unsafe fn chan_from_global_ptr<T: Owned>( pub unsafe fn chan_from_global_ptr<T: Owned>(
global: GlobalPtr, global: GlobalPtr,
task_fn: fn() -> task::TaskBuilder, task_fn: fn() -> task::TaskBuilder,
f: fn~(comm::Port<T>) f: fn~(oldcomm::Port<T>)
) -> comm::Chan<T> { ) -> oldcomm::Chan<T> {
enum Msg { enum Msg {
Proceed, Proceed,
@ -74,12 +74,12 @@ pub unsafe fn chan_from_global_ptr<T: Owned>(
let (setup2_po, setup2_ch) = pipes::stream(); let (setup2_po, setup2_ch) = pipes::stream();
// XXX: Ugly type inference hints // XXX: Ugly type inference hints
let setup1_po: pipes::Port<comm::Chan<T>> = setup1_po; let setup1_po: pipes::Port<oldcomm::Chan<T>> = setup1_po;
let setup2_po: pipes::Port<Msg> = setup2_po; let setup2_po: pipes::Port<Msg> = setup2_po;
do task_fn().spawn |move f, move setup1_ch, move setup2_po| { do task_fn().spawn |move f, move setup1_ch, move setup2_po| {
let po = comm::Port::<T>(); let po = oldcomm::Port::<T>();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
setup1_ch.send(ch); setup1_ch.send(ch);
// Wait to hear if we are the official instance of // Wait to hear if we are the official instance of
@ -130,29 +130,29 @@ pub fn test_from_global_chan1() {
// Create the global channel, attached to a new task // Create the global channel, attached to a new task
let ch = unsafe { let ch = unsafe {
do chan_from_global_ptr(globchanp, task::task) |po| { do chan_from_global_ptr(globchanp, task::task) |po| {
let ch = comm::recv(po); let ch = oldcomm::recv(po);
comm::send(ch, true); oldcomm::send(ch, true);
let ch = comm::recv(po); let ch = oldcomm::recv(po);
comm::send(ch, true); oldcomm::send(ch, true);
} }
}; };
// Talk to it // Talk to it
let po = comm::Port(); let po = oldcomm::Port();
comm::send(ch, comm::Chan(&po)); oldcomm::send(ch, oldcomm::Chan(&po));
assert comm::recv(po) == true; assert oldcomm::recv(po) == true;
// This one just reuses the previous channel // This one just reuses the previous channel
let ch = unsafe { let ch = unsafe {
do chan_from_global_ptr(globchanp, task::task) |po| { do chan_from_global_ptr(globchanp, task::task) |po| {
let ch = comm::recv(po); let ch = oldcomm::recv(po);
comm::send(ch, false); oldcomm::send(ch, false);
} }
}; };
// Talk to the original global task // Talk to the original global task
let po = comm::Port(); let po = oldcomm::Port();
comm::send(ch, comm::Chan(&po)); oldcomm::send(ch, oldcomm::Chan(&po));
assert comm::recv(po) == true; assert oldcomm::recv(po) == true;
} }
#[test] #[test]
@ -163,8 +163,8 @@ pub fn test_from_global_chan2() {
let globchan = 0; let globchan = 0;
let globchanp = ptr::addr_of(&globchan); let globchanp = ptr::addr_of(&globchan);
let resultpo = comm::Port(); let resultpo = oldcomm::Port();
let resultch = comm::Chan(&resultpo); let resultch = oldcomm::Chan(&resultpo);
// Spawn a bunch of tasks that all want to compete to // Spawn a bunch of tasks that all want to compete to
// create the global channel // create the global channel
@ -175,23 +175,23 @@ pub fn test_from_global_chan2() {
globchanp, task::task) |po| { globchanp, task::task) |po| {
for uint::range(0, 10) |_j| { for uint::range(0, 10) |_j| {
let ch = comm::recv(po); let ch = oldcomm::recv(po);
comm::send(ch, {i}); oldcomm::send(ch, {i});
} }
} }
}; };
let po = comm::Port(); let po = oldcomm::Port();
comm::send(ch, comm::Chan(&po)); oldcomm::send(ch, oldcomm::Chan(&po));
// We are The winner if our version of the // We are The winner if our version of the
// task was installed // task was installed
let winner = comm::recv(po); let winner = oldcomm::recv(po);
comm::send(resultch, winner == i); oldcomm::send(resultch, winner == i);
} }
} }
// There should be only one winner // There should be only one winner
let mut winners = 0u; let mut winners = 0u;
for uint::range(0u, 10u) |_i| { for uint::range(0u, 10u) |_i| {
let res = comm::recv(resultpo); let res = oldcomm::recv(resultpo);
if res { winners += 1u }; if res { winners += 1u };
} }
assert winners == 1u; assert winners == 1u;
@ -217,9 +217,9 @@ pub fn test_from_global_chan2() {
* * Weak tasks must not be supervised. A supervised task keeps * * Weak tasks must not be supervised. A supervised task keeps
* a reference to its parent, so the parent will not die. * a reference to its parent, so the parent will not die.
*/ */
pub unsafe fn weaken_task(f: fn(comm::Port<()>)) { pub unsafe fn weaken_task(f: fn(oldcomm::Port<()>)) {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
unsafe { unsafe {
rustrt::rust_task_weaken(cast::reinterpret_cast(&ch)); rustrt::rust_task_weaken(cast::reinterpret_cast(&ch));
} }
@ -227,13 +227,13 @@ pub unsafe fn weaken_task(f: fn(comm::Port<()>)) {
f(po); f(po);
struct Unweaken { struct Unweaken {
ch: comm::Chan<()>, ch: oldcomm::Chan<()>,
drop unsafe { drop unsafe {
rustrt::rust_task_unweaken(cast::reinterpret_cast(&self.ch)); rustrt::rust_task_unweaken(cast::reinterpret_cast(&self.ch));
} }
} }
fn Unweaken(ch: comm::Chan<()>) -> Unweaken { fn Unweaken(ch: oldcomm::Chan<()>) -> Unweaken {
Unweaken { Unweaken {
ch: ch ch: ch
} }
@ -255,7 +255,7 @@ pub fn test_weaken_task_wait() {
do task::spawn_unlinked { do task::spawn_unlinked {
unsafe { unsafe {
do weaken_task |po| { do weaken_task |po| {
comm::recv(po); oldcomm::recv(po);
} }
} }
} }
@ -275,7 +275,7 @@ pub fn test_weaken_task_stress() {
unsafe { unsafe {
do weaken_task |po| { do weaken_task |po| {
// Wait for it to tell us to die // Wait for it to tell us to die
comm::recv(po); oldcomm::recv(po);
} }
} }
} }

View file

@ -307,22 +307,22 @@ pub fn program_output(prog: &str, args: &[~str]) ->
// in parallel so we don't deadlock while blocking on one // in parallel so we don't deadlock while blocking on one
// or the other. FIXME (#2625): Surely there's a much more // or the other. FIXME (#2625): Surely there's a much more
// clever way to do this. // clever way to do this.
let p = comm::Port(); let p = oldcomm::Port();
let ch = comm::Chan(&p); let ch = oldcomm::Chan(&p);
do task::spawn_sched(task::SingleThreaded) { do task::spawn_sched(task::SingleThreaded) {
let errput = readclose(pipe_err.in); let errput = readclose(pipe_err.in);
comm::send(ch, (2, move errput)); oldcomm::send(ch, (2, move errput));
}; };
do task::spawn_sched(task::SingleThreaded) { do task::spawn_sched(task::SingleThreaded) {
let output = readclose(pipe_out.in); let output = readclose(pipe_out.in);
comm::send(ch, (1, move output)); oldcomm::send(ch, (1, move output));
}; };
let status = run::waitpid(pid); let status = run::waitpid(pid);
let mut errs = ~""; let mut errs = ~"";
let mut outs = ~""; let mut outs = ~"";
let mut count = 2; let mut count = 2;
while count > 0 { while count > 0 {
let stream = comm::recv(p); let stream = oldcomm::recv(p);
match stream { match stream {
(1, copy s) => { (1, copy s) => {
outs = move s; outs = move s;

View file

@ -447,18 +447,18 @@ impl TaskBuilder {
* Fails if a future_result was already set for this task. * Fails if a future_result was already set for this task.
*/ */
fn try<T: Owned>(f: fn~() -> T) -> Result<T,()> { fn try<T: Owned>(f: fn~() -> T) -> Result<T,()> {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
let mut result = None; let mut result = None;
let fr_task_builder = self.future_result(|+r| { let fr_task_builder = self.future_result(|+r| {
result = Some(move r); result = Some(move r);
}); });
do fr_task_builder.spawn |move f| { do fr_task_builder.spawn |move f| {
comm::send(ch, f()); oldcomm::send(ch, f());
} }
match option::unwrap(move result).recv() { match option::unwrap(move result).recv() {
Success => result::Ok(comm::recv(po)), Success => result::Ok(oldcomm::recv(po)),
Failure => result::Err(()) Failure => result::Err(())
} }
} }
@ -679,17 +679,17 @@ fn test_cant_dup_task_builder() {
#[test] #[ignore(cfg(windows))] #[test] #[ignore(cfg(windows))]
fn test_spawn_unlinked_unsup_no_fail_down() { // grandchild sends on a port fn test_spawn_unlinked_unsup_no_fail_down() { // grandchild sends on a port
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
do spawn_unlinked { do spawn_unlinked {
do spawn_unlinked { do spawn_unlinked {
// Give middle task a chance to fail-but-not-kill-us. // Give middle task a chance to fail-but-not-kill-us.
for iter::repeat(16) { task::yield(); } for iter::repeat(16) { task::yield(); }
comm::send(ch, ()); // If killed first, grandparent hangs. oldcomm::send(ch, ()); // If killed first, grandparent hangs.
} }
fail; // Shouldn't kill either (grand)parent or (grand)child. fail; // Shouldn't kill either (grand)parent or (grand)child.
} }
comm::recv(po); oldcomm::recv(po);
} }
#[test] #[ignore(cfg(windows))] #[test] #[ignore(cfg(windows))]
fn test_spawn_unlinked_unsup_no_fail_up() { // child unlinked fails fn test_spawn_unlinked_unsup_no_fail_up() { // child unlinked fails
@ -709,8 +709,8 @@ fn test_spawn_unlinked_sup_fail_down() {
#[test] #[should_fail] #[ignore(cfg(windows))] #[test] #[should_fail] #[ignore(cfg(windows))]
fn test_spawn_linked_sup_fail_up() { // child fails; parent fails fn test_spawn_linked_sup_fail_up() { // child fails; parent fails
let po = comm::Port::<()>(); let po = oldcomm::Port::<()>();
let _ch = comm::Chan(&po); let _ch = oldcomm::Chan(&po);
// Unidirectional "parenting" shouldn't override bidirectional linked. // Unidirectional "parenting" shouldn't override bidirectional linked.
// We have to cheat with opts - the interface doesn't support them because // We have to cheat with opts - the interface doesn't support them because
// they don't make sense (redundant with task().supervised()). // they don't make sense (redundant with task().supervised()).
@ -728,7 +728,7 @@ fn test_spawn_linked_sup_fail_up() { // child fails; parent fails
.. b0 .. b0
}; };
do b1.spawn { fail; } do b1.spawn { fail; }
comm::recv(po); // We should get punted awake oldcomm::recv(po); // We should get punted awake
} }
#[test] #[should_fail] #[ignore(cfg(windows))] #[test] #[should_fail] #[ignore(cfg(windows))]
fn test_spawn_linked_sup_fail_down() { // parent fails; child fails fn test_spawn_linked_sup_fail_down() { // parent fails; child fails
@ -752,11 +752,11 @@ fn test_spawn_linked_sup_fail_down() { // parent fails; child fails
} }
#[test] #[should_fail] #[ignore(cfg(windows))] #[test] #[should_fail] #[ignore(cfg(windows))]
fn test_spawn_linked_unsup_fail_up() { // child fails; parent fails fn test_spawn_linked_unsup_fail_up() { // child fails; parent fails
let po = comm::Port::<()>(); let po = oldcomm::Port::<()>();
let _ch = comm::Chan(&po); let _ch = oldcomm::Chan(&po);
// Default options are to spawn linked & unsupervised. // Default options are to spawn linked & unsupervised.
do spawn { fail; } do spawn { fail; }
comm::recv(po); // We should get punted awake oldcomm::recv(po); // We should get punted awake
} }
#[test] #[should_fail] #[ignore(cfg(windows))] #[test] #[should_fail] #[ignore(cfg(windows))]
fn test_spawn_linked_unsup_fail_down() { // parent fails; child fails fn test_spawn_linked_unsup_fail_down() { // parent fails; child fails
@ -824,27 +824,27 @@ fn test_spawn_linked_sup_propagate_sibling() {
#[test] #[test]
fn test_run_basic() { fn test_run_basic() {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
do task().spawn { do task().spawn {
comm::send(ch, ()); oldcomm::send(ch, ());
} }
comm::recv(po); oldcomm::recv(po);
} }
#[test] #[test]
fn test_add_wrapper() { fn test_add_wrapper() {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
let b0 = task(); let b0 = task();
let b1 = do b0.add_wrapper |body| { let b1 = do b0.add_wrapper |body| {
fn~(move body) { fn~(move body) {
body(); body();
comm::send(ch, ()); oldcomm::send(ch, ());
} }
}; };
do b1.spawn { } do b1.spawn { }
comm::recv(po); oldcomm::recv(po);
} }
#[test] #[test]
@ -897,10 +897,10 @@ fn test_spawn_sched_no_threads() {
#[test] #[test]
fn test_spawn_sched() { fn test_spawn_sched() {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
fn f(i: int, ch: comm::Chan<()>) { fn f(i: int, ch: oldcomm::Chan<()>) {
let parent_sched_id = rt::rust_get_sched_id(); let parent_sched_id = rt::rust_get_sched_id();
do spawn_sched(SingleThreaded) { do spawn_sched(SingleThreaded) {
@ -908,7 +908,7 @@ fn test_spawn_sched() {
assert parent_sched_id != child_sched_id; assert parent_sched_id != child_sched_id;
if (i == 0) { if (i == 0) {
comm::send(ch, ()); oldcomm::send(ch, ());
} else { } else {
f(i - 1, ch); f(i - 1, ch);
} }
@ -916,13 +916,13 @@ fn test_spawn_sched() {
} }
f(10, ch); f(10, ch);
comm::recv(po); oldcomm::recv(po);
} }
#[test] #[test]
fn test_spawn_sched_childs_on_same_sched() { fn test_spawn_sched_childs_on_same_sched() {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
do spawn_sched(SingleThreaded) { do spawn_sched(SingleThreaded) {
let parent_sched_id = rt::rust_get_sched_id(); let parent_sched_id = rt::rust_get_sched_id();
@ -930,11 +930,11 @@ fn test_spawn_sched_childs_on_same_sched() {
let child_sched_id = rt::rust_get_sched_id(); let child_sched_id = rt::rust_get_sched_id();
// This should be on the same scheduler // This should be on the same scheduler
assert parent_sched_id == child_sched_id; assert parent_sched_id == child_sched_id;
comm::send(ch, ()); oldcomm::send(ch, ());
}; };
}; };
comm::recv(po); oldcomm::recv(po);
} }
#[nolink] #[nolink]
@ -955,71 +955,71 @@ fn test_spawn_sched_blocking() {
// without affecting other schedulers // without affecting other schedulers
for iter::repeat(20u) { for iter::repeat(20u) {
let start_po = comm::Port(); let start_po = oldcomm::Port();
let start_ch = comm::Chan(&start_po); let start_ch = oldcomm::Chan(&start_po);
let fin_po = comm::Port(); let fin_po = oldcomm::Port();
let fin_ch = comm::Chan(&fin_po); let fin_ch = oldcomm::Chan(&fin_po);
let lock = testrt::rust_dbg_lock_create(); let lock = testrt::rust_dbg_lock_create();
do spawn_sched(SingleThreaded) { do spawn_sched(SingleThreaded) {
testrt::rust_dbg_lock_lock(lock); testrt::rust_dbg_lock_lock(lock);
comm::send(start_ch, ()); oldcomm::send(start_ch, ());
// Block the scheduler thread // Block the scheduler thread
testrt::rust_dbg_lock_wait(lock); testrt::rust_dbg_lock_wait(lock);
testrt::rust_dbg_lock_unlock(lock); testrt::rust_dbg_lock_unlock(lock);
comm::send(fin_ch, ()); oldcomm::send(fin_ch, ());
}; };
// Wait until the other task has its lock // Wait until the other task has its lock
comm::recv(start_po); oldcomm::recv(start_po);
fn pingpong(po: comm::Port<int>, ch: comm::Chan<int>) { fn pingpong(po: oldcomm::Port<int>, ch: oldcomm::Chan<int>) {
let mut val = 20; let mut val = 20;
while val > 0 { while val > 0 {
val = comm::recv(po); val = oldcomm::recv(po);
comm::send(ch, val - 1); oldcomm::send(ch, val - 1);
} }
} }
let setup_po = comm::Port(); let setup_po = oldcomm::Port();
let setup_ch = comm::Chan(&setup_po); let setup_ch = oldcomm::Chan(&setup_po);
let parent_po = comm::Port(); let parent_po = oldcomm::Port();
let parent_ch = comm::Chan(&parent_po); let parent_ch = oldcomm::Chan(&parent_po);
do spawn { do spawn {
let child_po = comm::Port(); let child_po = oldcomm::Port();
comm::send(setup_ch, comm::Chan(&child_po)); oldcomm::send(setup_ch, oldcomm::Chan(&child_po));
pingpong(child_po, parent_ch); pingpong(child_po, parent_ch);
}; };
let child_ch = comm::recv(setup_po); let child_ch = oldcomm::recv(setup_po);
comm::send(child_ch, 20); oldcomm::send(child_ch, 20);
pingpong(parent_po, child_ch); pingpong(parent_po, child_ch);
testrt::rust_dbg_lock_lock(lock); testrt::rust_dbg_lock_lock(lock);
testrt::rust_dbg_lock_signal(lock); testrt::rust_dbg_lock_signal(lock);
testrt::rust_dbg_lock_unlock(lock); testrt::rust_dbg_lock_unlock(lock);
comm::recv(fin_po); oldcomm::recv(fin_po);
testrt::rust_dbg_lock_destroy(lock); testrt::rust_dbg_lock_destroy(lock);
} }
} }
#[cfg(test)] #[cfg(test)]
fn avoid_copying_the_body(spawnfn: fn(v: fn~())) { fn avoid_copying_the_body(spawnfn: fn(v: fn~())) {
let p = comm::Port::<uint>(); let p = oldcomm::Port::<uint>();
let ch = comm::Chan(&p); let ch = oldcomm::Chan(&p);
let x = ~1; let x = ~1;
let x_in_parent = ptr::addr_of(&(*x)) as uint; let x_in_parent = ptr::addr_of(&(*x)) as uint;
do spawnfn |move x| { do spawnfn |move x| {
let x_in_child = ptr::addr_of(&(*x)) as uint; let x_in_child = ptr::addr_of(&(*x)) as uint;
comm::send(ch, x_in_child); oldcomm::send(ch, x_in_child);
} }
let x_in_child = comm::recv(p); let x_in_child = oldcomm::recv(p);
assert x_in_parent == x_in_child; assert x_in_parent == x_in_child;
} }
@ -1057,19 +1057,19 @@ fn test_avoid_copying_the_body_unlinked() {
#[test] #[test]
fn test_platform_thread() { fn test_platform_thread() {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
do task().sched_mode(PlatformThread).spawn { do task().sched_mode(PlatformThread).spawn {
comm::send(ch, ()); oldcomm::send(ch, ());
} }
comm::recv(po); oldcomm::recv(po);
} }
#[test] #[test]
#[ignore(cfg(windows))] #[ignore(cfg(windows))]
#[should_fail] #[should_fail]
fn test_unkillable() { fn test_unkillable() {
let po = comm::Port(); let po = oldcomm::Port();
let ch = po.chan(); let ch = po.chan();
// We want to do this after failing // We want to do this after failing

View file

@ -646,12 +646,12 @@ pub fn spawn_raw(opts: TaskOpts, f: fn~()) {
#[test] #[test]
fn test_spawn_raw_simple() { fn test_spawn_raw_simple() {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
do spawn_raw(default_task_opts()) { do spawn_raw(default_task_opts()) {
comm::send(ch, ()); oldcomm::send(ch, ());
} }
comm::recv(po); oldcomm::recv(po);
} }
#[test] #[test]

View file

@ -434,8 +434,8 @@ fails without recording a fatal error then we've encountered a compiler
bug and need to present an error. bug and need to present an error.
*/ */
fn monitor(+f: fn~(diagnostic::emitter)) { fn monitor(+f: fn~(diagnostic::emitter)) {
let p = comm::Port(); let p = oldcomm::Port();
let ch = comm::Chan(&p); let ch = oldcomm::Chan(&p);
match do task::try |move f| { match do task::try |move f| {
@ -444,14 +444,14 @@ fn monitor(+f: fn~(diagnostic::emitter)) {
let demitter = fn@(cmsp: Option<(@codemap::CodeMap, codemap::span)>, let demitter = fn@(cmsp: Option<(@codemap::CodeMap, codemap::span)>,
msg: &str, lvl: diagnostic::level) { msg: &str, lvl: diagnostic::level) {
if lvl == diagnostic::fatal { if lvl == diagnostic::fatal {
comm::send(ch, fatal); oldcomm::send(ch, fatal);
} }
diagnostic::emit(cmsp, msg, lvl); diagnostic::emit(cmsp, msg, lvl);
}; };
struct finally { struct finally {
ch: comm::Chan<monitor_msg>, ch: oldcomm::Chan<monitor_msg>,
drop { comm::send(self.ch, done); } drop { oldcomm::send(self.ch, done); }
} }
let _finally = finally { ch: ch }; let _finally = finally { ch: ch };
@ -461,7 +461,7 @@ fn monitor(+f: fn~(diagnostic::emitter)) {
result::Ok(_) => { /* fallthrough */ } result::Ok(_) => { /* fallthrough */ }
result::Err(_) => { result::Err(_) => {
// Task failed without emitting a fatal diagnostic // Task failed without emitting a fatal diagnostic
if comm::recv(p) == done { if oldcomm::recv(p) == done {
diagnostic::emit( diagnostic::emit(
None, None,
diagnostic::ice_msg(~"unexpected failure"), diagnostic::ice_msg(~"unexpected failure"),

View file

@ -46,7 +46,7 @@ enum Msg {
} }
pub enum Srv = { pub enum Srv = {
ch: comm::Chan<Msg> ch: oldcomm::Chan<Msg>
}; };
impl Srv: Clone { impl Srv: Clone {
@ -70,11 +70,11 @@ fn run<T>(owner: SrvOwner<T>, source: ~str, +parse: Parser) -> T {
}); });
let res = owner(srv_); let res = owner(srv_);
comm::send(srv_.ch, Exit); oldcomm::send(srv_.ch, Exit);
move res move res
} }
fn act(po: comm::Port<Msg>, source: ~str, parse: Parser) { fn act(po: oldcomm::Port<Msg>, source: ~str, parse: Parser) {
let sess = build_session(); let sess = build_session();
let ctxt = build_ctxt( let ctxt = build_ctxt(
@ -84,7 +84,7 @@ fn act(po: comm::Port<Msg>, source: ~str, parse: Parser) {
let mut keep_going = true; let mut keep_going = true;
while keep_going { while keep_going {
match comm::recv(po) { match oldcomm::recv(po) {
HandleRequest(f) => { HandleRequest(f) => {
f(ctxt); f(ctxt);
} }
@ -99,13 +99,13 @@ pub fn exec<T:Owned>(
srv: Srv, srv: Srv,
+f: fn~(ctxt: Ctxt) -> T +f: fn~(ctxt: Ctxt) -> T
) -> T { ) -> T {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
let msg = HandleRequest(fn~(move f, ctxt: Ctxt) { let msg = HandleRequest(fn~(move f, ctxt: Ctxt) {
comm::send(ch, f(ctxt)) oldcomm::send(ch, f(ctxt))
}); });
comm::send(srv.ch, move msg); oldcomm::send(srv.ch, move msg);
comm::recv(po) oldcomm::recv(po)
} }
fn build_ctxt(sess: Session, fn build_ctxt(sess: Session,

View file

@ -129,7 +129,7 @@ fn should_request_new_writer_for_each_page() {
write_markdown(doc, move writer_factory); write_markdown(doc, move writer_factory);
// We expect two pages to have been written // We expect two pages to have been written
for iter::repeat(2) { for iter::repeat(2) {
comm::recv(po); oldcomm::recv(po);
} }
} }
@ -160,7 +160,7 @@ fn should_write_title_for_each_page() {
let doc = (page_pass::mk_pass(config::DocPerMod).f)(srv, doc); let doc = (page_pass::mk_pass(config::DocPerMod).f)(srv, doc);
write_markdown(doc, move writer_factory); write_markdown(doc, move writer_factory);
for iter::repeat(2) { for iter::repeat(2) {
let (page, markdown) = comm::recv(po); let (page, markdown) = oldcomm::recv(po);
match page { match page {
doc::CratePage(_) => { doc::CratePage(_) => {
assert str::contains(markdown, ~"% Crate core"); assert str::contains(markdown, ~"% Crate core");
@ -304,7 +304,7 @@ fn should_write_full_path_to_mod() {
assert str::contains(markdown, ~"# Module `a::b::c`"); assert str::contains(markdown, ~"# Module `a::b::c`");
} }
fn write_common( fn write_oldcommon(
ctxt: &Ctxt, ctxt: &Ctxt,
+desc: Option<~str>, +desc: Option<~str>,
sections: &[doc::Section] sections: &[doc::Section]
@ -353,7 +353,7 @@ fn write_mod_contents(
ctxt: &Ctxt, ctxt: &Ctxt,
+doc: doc::ModDoc +doc: doc::ModDoc
) { ) {
write_common(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
if doc.index.is_some() { if doc.index.is_some() {
write_index(ctxt, doc.index.get()); write_index(ctxt, doc.index.get());
} }
@ -456,7 +456,7 @@ fn should_write_index_for_foreign_mods() {
} }
fn write_nmod(ctxt: &Ctxt, +doc: doc::NmodDoc) { fn write_nmod(ctxt: &Ctxt, +doc: doc::NmodDoc) {
write_common(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
if doc.index.is_some() { if doc.index.is_some() {
write_index(ctxt, doc.index.get()); write_index(ctxt, doc.index.get());
} }
@ -507,7 +507,7 @@ fn write_fnlike(
sections: &[doc::Section] sections: &[doc::Section]
) { ) {
write_sig(ctxt, sig); write_sig(ctxt, sig);
write_common(ctxt, desc, sections); write_oldcommon(ctxt, desc, sections);
} }
fn write_sig(ctxt: &Ctxt, +sig: Option<~str>) { fn write_sig(ctxt: &Ctxt, +sig: Option<~str>) {
@ -576,7 +576,7 @@ fn write_const(
+doc: doc::ConstDoc +doc: doc::ConstDoc
) { ) {
write_sig(ctxt, doc.sig); write_sig(ctxt, doc.sig);
write_common(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
} }
#[test] #[test]
@ -597,7 +597,7 @@ fn write_enum(
ctxt: &Ctxt, ctxt: &Ctxt,
+doc: doc::EnumDoc +doc: doc::EnumDoc
) { ) {
write_common(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
write_variants(ctxt, doc.variants); write_variants(ctxt, doc.variants);
} }
@ -678,7 +678,7 @@ fn should_write_variant_list_with_signatures() {
} }
fn write_trait(ctxt: &Ctxt, +doc: doc::TraitDoc) { fn write_trait(ctxt: &Ctxt, +doc: doc::TraitDoc) {
write_common(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
write_methods(ctxt, doc.methods); write_methods(ctxt, doc.methods);
} }
@ -726,7 +726,7 @@ fn should_write_trait_method_signature() {
} }
fn write_impl(ctxt: &Ctxt, +doc: doc::ImplDoc) { fn write_impl(ctxt: &Ctxt, +doc: doc::ImplDoc) {
write_common(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
write_methods(ctxt, doc.methods); write_methods(ctxt, doc.methods);
} }
@ -768,7 +768,7 @@ fn write_type(
+doc: doc::TyDoc +doc: doc::TyDoc
) { ) {
write_sig(ctxt, doc.sig); write_sig(ctxt, doc.sig);
write_common(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
} }
#[test] #[test]
@ -795,7 +795,7 @@ fn write_struct(
+doc: doc::StructDoc +doc: doc::StructDoc
) { ) {
write_sig(ctxt, doc.sig); write_sig(ctxt, doc.sig);
write_common(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
} }
#[test] #[test]
@ -854,7 +854,7 @@ mod test {
) -> ~str { ) -> ~str {
let (writer_factory, po) = markdown_writer::future_writer_factory(); let (writer_factory, po) = markdown_writer::future_writer_factory();
write_markdown(doc, move writer_factory); write_markdown(doc, move writer_factory);
return comm::recv(po).second(); return oldcomm::recv(po).second();
} }
fn write_markdown_str_srv( fn write_markdown_str_srv(
@ -864,7 +864,7 @@ mod test {
let (writer_factory, po) = markdown_writer::future_writer_factory(); let (writer_factory, po) = markdown_writer::future_writer_factory();
let pass = mk_pass(move writer_factory); let pass = mk_pass(move writer_factory);
(pass.f)(srv, doc); (pass.f)(srv, doc);
return comm::recv(po).second(); return oldcomm::recv(po).second();
} }
#[test] #[test]

View file

@ -151,8 +151,8 @@ fn readclose(fd: libc::c_int) -> ~str {
fn generic_writer(+process: fn~(+markdown: ~str)) -> Writer { fn generic_writer(+process: fn~(+markdown: ~str)) -> Writer {
let (setup_po, setup_ch) = pipes::stream(); let (setup_po, setup_ch) = pipes::stream();
do task::spawn |move process, move setup_ch| { do task::spawn |move process, move setup_ch| {
let po: comm::Port<WriteInstr> = comm::Port(); let po: oldcomm::Port<WriteInstr> = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
setup_ch.send(ch); setup_ch.send(ch);
let mut markdown = ~""; let mut markdown = ~"";
@ -168,7 +168,7 @@ fn generic_writer(+process: fn~(+markdown: ~str)) -> Writer {
let ch = setup_po.recv(); let ch = setup_po.recv();
fn~(+instr: WriteInstr) { fn~(+instr: WriteInstr) {
comm::send(ch, instr); oldcomm::send(ch, instr);
} }
} }
@ -275,16 +275,16 @@ fn write_file(path: &Path, +s: ~str) {
} }
pub fn future_writer_factory( pub fn future_writer_factory(
) -> (WriterFactory, comm::Port<(doc::Page, ~str)>) { ) -> (WriterFactory, oldcomm::Port<(doc::Page, ~str)>) {
let markdown_po = comm::Port(); let markdown_po = oldcomm::Port();
let markdown_ch = comm::Chan(&markdown_po); let markdown_ch = oldcomm::Chan(&markdown_po);
let writer_factory = fn~(+page: doc::Page) -> Writer { let writer_factory = fn~(+page: doc::Page) -> Writer {
let (writer_po, writer_ch) = pipes::stream(); let (writer_po, writer_ch) = pipes::stream();
do task::spawn |move writer_ch| { do task::spawn |move writer_ch| {
let (writer, future) = future_writer(); let (writer, future) = future_writer();
writer_ch.send(move writer); writer_ch.send(move writer);
let s = future.get(); let s = future.get();
comm::send(markdown_ch, (page, s)); oldcomm::send(markdown_ch, (page, s));
} }
writer_po.recv() writer_po.recv()
}; };

View file

@ -41,22 +41,22 @@ fn run(
let (result_port, page_chan) = do util::spawn_conversation let (result_port, page_chan) = do util::spawn_conversation
|page_port, result_chan| { |page_port, result_chan| {
comm::send(result_chan, make_doc_from_pages(page_port)); oldcomm::send(result_chan, make_doc_from_pages(page_port));
}; };
find_pages(doc, page_chan); find_pages(doc, page_chan);
comm::recv(result_port) oldcomm::recv(result_port)
} }
type PagePort = comm::Port<Option<doc::Page>>; type PagePort = oldcomm::Port<Option<doc::Page>>;
type PageChan = comm::Chan<Option<doc::Page>>; type PageChan = oldcomm::Chan<Option<doc::Page>>;
type NominalPageChan = NominalOp<PageChan>; type NominalPageChan = NominalOp<PageChan>;
fn make_doc_from_pages(page_port: PagePort) -> doc::Doc { fn make_doc_from_pages(page_port: PagePort) -> doc::Doc {
let mut pages = ~[]; let mut pages = ~[];
loop { loop {
let val = comm::recv(page_port); let val = oldcomm::recv(page_port);
if val.is_some() { if val.is_some() {
pages += ~[option::unwrap(move val)]; pages += ~[option::unwrap(move val)];
} else { } else {
@ -77,7 +77,7 @@ fn find_pages(doc: doc::Doc, page_chan: PageChan) {
}; };
(fold.fold_doc)(&fold, doc); (fold.fold_doc)(&fold, doc);
comm::send(page_chan, None); oldcomm::send(page_chan, None);
} }
fn fold_crate( fn fold_crate(
@ -92,7 +92,7 @@ fn fold_crate(
.. doc .. doc
}); });
comm::send(fold.ctxt.op, Some(page)); oldcomm::send(fold.ctxt.op, Some(page));
doc doc
} }
@ -108,7 +108,7 @@ fn fold_mod(
let doc = strip_mod(doc); let doc = strip_mod(doc);
let page = doc::ItemPage(doc::ModTag(doc)); let page = doc::ItemPage(doc::ModTag(doc));
comm::send(fold.ctxt.op, Some(page)); oldcomm::send(fold.ctxt.op, Some(page));
} }
doc doc
@ -133,7 +133,7 @@ fn fold_nmod(
) -> doc::NmodDoc { ) -> doc::NmodDoc {
let doc = fold::default_seq_fold_nmod(fold, doc); let doc = fold::default_seq_fold_nmod(fold, doc);
let page = doc::ItemPage(doc::NmodTag(doc)); let page = doc::ItemPage(doc::NmodTag(doc));
comm::send(fold.ctxt.op, Some(page)); oldcomm::send(fold.ctxt.op, Some(page));
return doc; return doc;
} }

View file

@ -18,23 +18,23 @@ impl<T: Copy> NominalOp<T>: Clone {
} }
pub fn spawn_listener<A: Owned>( pub fn spawn_listener<A: Owned>(
+f: fn~(comm::Port<A>)) -> comm::Chan<A> { +f: fn~(oldcomm::Port<A>)) -> oldcomm::Chan<A> {
let setup_po = comm::Port(); let setup_po = oldcomm::Port();
let setup_ch = comm::Chan(&setup_po); let setup_ch = oldcomm::Chan(&setup_po);
do task::spawn |move f| { do task::spawn |move f| {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
comm::send(setup_ch, ch); oldcomm::send(setup_ch, ch);
f(move po); f(move po);
} }
comm::recv(setup_po) oldcomm::recv(setup_po)
} }
pub fn spawn_conversation<A: Owned, B: Owned> pub fn spawn_conversation<A: Owned, B: Owned>
(+f: fn~(comm::Port<A>, comm::Chan<B>)) (+f: fn~(oldcomm::Port<A>, oldcomm::Chan<B>))
-> (comm::Port<B>, comm::Chan<A>) { -> (oldcomm::Port<B>, oldcomm::Chan<A>) {
let from_child = comm::Port(); let from_child = oldcomm::Port();
let to_parent = comm::Chan(&from_child); let to_parent = oldcomm::Chan(&from_child);
let to_child = do spawn_listener |move f, from_parent| { let to_child = do spawn_listener |move f, from_parent| {
f(from_parent, to_parent) f(from_parent, to_parent)
}; };

View file

@ -30,7 +30,6 @@ use create_uv_getaddrinfo_t = uv::ll::getaddrinfo_t;
use set_data_for_req = uv::ll::set_data_for_req; use set_data_for_req = uv::ll::set_data_for_req;
use get_data_for_req = uv::ll::get_data_for_req; use get_data_for_req = uv::ll::get_data_for_req;
use ll = uv::ll; use ll = uv::ll;
use comm = core::comm;
/// An IP address /// An IP address
pub enum IpAddr { pub enum IpAddr {
@ -108,7 +107,7 @@ enum IpGetAddrErr {
*/ */
pub fn get_addr(node: &str, iotask: iotask) pub fn get_addr(node: &str, iotask: iotask)
-> result::Result<~[IpAddr], IpGetAddrErr> { -> result::Result<~[IpAddr], IpGetAddrErr> {
do core::comm::listen |output_ch| { do oldcomm::listen |output_ch| {
do str::as_buf(node) |node_ptr, len| unsafe { do str::as_buf(node) |node_ptr, len| unsafe {
log(debug, fmt!("slice len %?", len)); log(debug, fmt!("slice len %?", len));
let handle = create_uv_getaddrinfo_t(); let handle = create_uv_getaddrinfo_t();
@ -268,7 +267,7 @@ pub mod v6 {
} }
type GetAddrData = { type GetAddrData = {
output_ch: comm::Chan<result::Result<~[IpAddr],IpGetAddrErr>> output_ch: oldcomm::Chan<result::Result<~[IpAddr],IpGetAddrErr>>
}; };
extern fn get_addr_cb(handle: *uv_getaddrinfo_t, status: libc::c_int, extern fn get_addr_cb(handle: *uv_getaddrinfo_t, status: libc::c_int,

View file

@ -19,7 +19,6 @@ use future_spawn = future::spawn;
use result::{Result}; use result::{Result};
use libc::size_t; use libc::size_t;
use io::{Reader, ReaderUtil, Writer}; use io::{Reader, ReaderUtil, Writer};
use comm = core::comm;
#[nolink] #[nolink]
extern mod rustrt { extern mod rustrt {
@ -133,19 +132,19 @@ pub enum TcpConnectErrData {
pub fn connect(input_ip: ip::IpAddr, port: uint, pub fn connect(input_ip: ip::IpAddr, port: uint,
iotask: IoTask) iotask: IoTask)
-> result::Result<TcpSocket, TcpConnectErrData> unsafe { -> result::Result<TcpSocket, TcpConnectErrData> unsafe {
let result_po = core::comm::Port::<ConnAttempt>(); let result_po = oldcomm::Port::<ConnAttempt>();
let closed_signal_po = core::comm::Port::<()>(); let closed_signal_po = oldcomm::Port::<()>();
let conn_data = { let conn_data = {
result_ch: core::comm::Chan(&result_po), result_ch: oldcomm::Chan(&result_po),
closed_signal_ch: core::comm::Chan(&closed_signal_po) closed_signal_ch: oldcomm::Chan(&closed_signal_po)
}; };
let conn_data_ptr = ptr::addr_of(&conn_data); let conn_data_ptr = ptr::addr_of(&conn_data);
let reader_po = core::comm::Port::<result::Result<~[u8], TcpErrData>>(); let reader_po = oldcomm::Port::<result::Result<~[u8], TcpErrData>>();
let stream_handle_ptr = malloc_uv_tcp_t(); let stream_handle_ptr = malloc_uv_tcp_t();
*(stream_handle_ptr as *mut uv::ll::uv_tcp_t) = uv::ll::tcp_t(); *(stream_handle_ptr as *mut uv::ll::uv_tcp_t) = uv::ll::tcp_t();
let socket_data = @{ let socket_data = @{
reader_po: reader_po, reader_po: reader_po,
reader_ch: core::comm::Chan(&reader_po), reader_ch: oldcomm::Chan(&reader_po),
stream_handle_ptr: stream_handle_ptr, stream_handle_ptr: stream_handle_ptr,
connect_req: uv::ll::connect_t(), connect_req: uv::ll::connect_t(),
write_req: uv::ll::write_t(), write_req: uv::ll::write_t(),
@ -217,7 +216,7 @@ pub fn connect(input_ip: ip::IpAddr, port: uint,
// immediate connect failure.. probably a garbage // immediate connect failure.. probably a garbage
// ip or somesuch // ip or somesuch
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
core::comm::send((*conn_data_ptr).result_ch, oldcomm::send((*conn_data_ptr).result_ch,
ConnFailure(err_data.to_tcp_err())); ConnFailure(err_data.to_tcp_err()));
uv::ll::set_data_for_uv_handle(stream_handle_ptr, uv::ll::set_data_for_uv_handle(stream_handle_ptr,
conn_data_ptr); conn_data_ptr);
@ -228,18 +227,18 @@ pub fn connect(input_ip: ip::IpAddr, port: uint,
_ => { _ => {
// failure to create a tcp handle // failure to create a tcp handle
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
core::comm::send((*conn_data_ptr).result_ch, oldcomm::send((*conn_data_ptr).result_ch,
ConnFailure(err_data.to_tcp_err())); ConnFailure(err_data.to_tcp_err()));
} }
} }
}; };
match core::comm::recv(result_po) { match oldcomm::recv(result_po) {
ConnSuccess => { ConnSuccess => {
log(debug, ~"tcp::connect - received success on result_po"); log(debug, ~"tcp::connect - received success on result_po");
result::Ok(TcpSocket(socket_data)) result::Ok(TcpSocket(socket_data))
} }
ConnFailure(ref err_data) => { ConnFailure(ref err_data) => {
core::comm::recv(closed_signal_po); oldcomm::recv(closed_signal_po);
log(debug, ~"tcp::connect - received failure on result_po"); log(debug, ~"tcp::connect - received failure on result_po");
// still have to free the malloc'd stream handle.. // still have to free the malloc'd stream handle..
rustrt::rust_uv_current_kernel_free(stream_handle_ptr rustrt::rust_uv_current_kernel_free(stream_handle_ptr
@ -329,7 +328,7 @@ pub fn write_future(sock: &TcpSocket, raw_write_data: ~[u8])
* `tcp_err_data` record * `tcp_err_data` record
*/ */
pub fn read_start(sock: &TcpSocket) pub fn read_start(sock: &TcpSocket)
-> result::Result<comm::Port< -> result::Result<oldcomm::Port<
result::Result<~[u8], TcpErrData>>, TcpErrData> unsafe { result::Result<~[u8], TcpErrData>>, TcpErrData> unsafe {
let socket_data = ptr::addr_of(&(*(sock.socket_data))); let socket_data = ptr::addr_of(&(*(sock.socket_data)));
read_start_common_impl(socket_data) read_start_common_impl(socket_data)
@ -343,7 +342,7 @@ pub fn read_start(sock: &TcpSocket)
* * `sock` - a `net::tcp::tcp_socket` that you wish to stop reading on * * `sock` - a `net::tcp::tcp_socket` that you wish to stop reading on
*/ */
pub fn read_stop(sock: &TcpSocket, pub fn read_stop(sock: &TcpSocket,
read_port: comm::Port<result::Result<~[u8], TcpErrData>>) -> read_port: oldcomm::Port<result::Result<~[u8], TcpErrData>>) ->
result::Result<(), TcpErrData> unsafe { result::Result<(), TcpErrData> unsafe {
log(debug, fmt!("taking the read_port out of commission %?", read_port)); log(debug, fmt!("taking the read_port out of commission %?", read_port));
let socket_data = ptr::addr_of(&(*sock.socket_data)); let socket_data = ptr::addr_of(&(*sock.socket_data));
@ -484,13 +483,13 @@ pub fn accept(new_conn: TcpNewConnection)
NewTcpConn(server_handle_ptr) => { NewTcpConn(server_handle_ptr) => {
let server_data_ptr = uv::ll::get_data_for_uv_handle( let server_data_ptr = uv::ll::get_data_for_uv_handle(
server_handle_ptr) as *TcpListenFcData; server_handle_ptr) as *TcpListenFcData;
let reader_po = core::comm::Port(); let reader_po = oldcomm::Port();
let iotask = (*server_data_ptr).iotask; let iotask = (*server_data_ptr).iotask;
let stream_handle_ptr = malloc_uv_tcp_t(); let stream_handle_ptr = malloc_uv_tcp_t();
*(stream_handle_ptr as *mut uv::ll::uv_tcp_t) = uv::ll::tcp_t(); *(stream_handle_ptr as *mut uv::ll::uv_tcp_t) = uv::ll::tcp_t();
let client_socket_data = @{ let client_socket_data = @{
reader_po: reader_po, reader_po: reader_po,
reader_ch: core::comm::Chan(&reader_po), reader_ch: oldcomm::Chan(&reader_po),
stream_handle_ptr : stream_handle_ptr, stream_handle_ptr : stream_handle_ptr,
connect_req : uv::ll::connect_t(), connect_req : uv::ll::connect_t(),
write_req : uv::ll::write_t(), write_req : uv::ll::write_t(),
@ -501,8 +500,8 @@ pub fn accept(new_conn: TcpNewConnection)
let client_stream_handle_ptr = let client_stream_handle_ptr =
(*client_socket_data_ptr).stream_handle_ptr; (*client_socket_data_ptr).stream_handle_ptr;
let result_po = core::comm::Port::<Option<TcpErrData>>(); let result_po = oldcomm::Port::<Option<TcpErrData>>();
let result_ch = core::comm::Chan(&result_po); let result_ch = oldcomm::Chan(&result_po);
// UNSAFE LIBUV INTERACTION BEGIN // UNSAFE LIBUV INTERACTION BEGIN
// .. normally this happens within the context of // .. normally this happens within the context of
@ -524,23 +523,23 @@ pub fn accept(new_conn: TcpNewConnection)
uv::ll::set_data_for_uv_handle(client_stream_handle_ptr, uv::ll::set_data_for_uv_handle(client_stream_handle_ptr,
client_socket_data_ptr client_socket_data_ptr
as *libc::c_void); as *libc::c_void);
core::comm::send(result_ch, None); oldcomm::send(result_ch, None);
} }
_ => { _ => {
log(debug, ~"failed to accept client conn"); log(debug, ~"failed to accept client conn");
core::comm::send(result_ch, Some( oldcomm::send(result_ch, Some(
uv::ll::get_last_err_data(loop_ptr).to_tcp_err())); uv::ll::get_last_err_data(loop_ptr).to_tcp_err()));
} }
} }
} }
_ => { _ => {
log(debug, ~"failed to init client stream"); log(debug, ~"failed to init client stream");
core::comm::send(result_ch, Some( oldcomm::send(result_ch, Some(
uv::ll::get_last_err_data(loop_ptr).to_tcp_err())); uv::ll::get_last_err_data(loop_ptr).to_tcp_err()));
} }
} }
// UNSAFE LIBUV INTERACTION END // UNSAFE LIBUV INTERACTION END
match core::comm::recv(result_po) { match oldcomm::recv(result_po) {
Some(copy err_data) => result::Err(err_data), Some(copy err_data) => result::Err(err_data),
None => result::Ok(TcpSocket(client_socket_data)) None => result::Ok(TcpSocket(client_socket_data))
} }
@ -578,9 +577,9 @@ pub fn accept(new_conn: TcpNewConnection)
*/ */
pub fn listen(host_ip: ip::IpAddr, port: uint, backlog: uint, pub fn listen(host_ip: ip::IpAddr, port: uint, backlog: uint,
iotask: IoTask, iotask: IoTask,
on_establish_cb: fn~(comm::Chan<Option<TcpErrData>>), on_establish_cb: fn~(oldcomm::Chan<Option<TcpErrData>>),
new_connect_cb: fn~(TcpNewConnection, new_connect_cb: fn~(TcpNewConnection,
comm::Chan<Option<TcpErrData>>)) oldcomm::Chan<Option<TcpErrData>>))
-> result::Result<(), TcpListenErrData> unsafe { -> result::Result<(), TcpListenErrData> unsafe {
do listen_common(move host_ip, port, backlog, iotask, do listen_common(move host_ip, port, backlog, iotask,
move on_establish_cb) move on_establish_cb)
@ -596,17 +595,17 @@ pub fn listen(host_ip: ip::IpAddr, port: uint, backlog: uint,
fn listen_common(host_ip: ip::IpAddr, port: uint, backlog: uint, fn listen_common(host_ip: ip::IpAddr, port: uint, backlog: uint,
iotask: IoTask, iotask: IoTask,
on_establish_cb: fn~(comm::Chan<Option<TcpErrData>>), on_establish_cb: fn~(oldcomm::Chan<Option<TcpErrData>>),
on_connect_cb: fn~(*uv::ll::uv_tcp_t)) on_connect_cb: fn~(*uv::ll::uv_tcp_t))
-> result::Result<(), TcpListenErrData> unsafe { -> result::Result<(), TcpListenErrData> unsafe {
let stream_closed_po = core::comm::Port::<()>(); let stream_closed_po = oldcomm::Port::<()>();
let kill_po = core::comm::Port::<Option<TcpErrData>>(); let kill_po = oldcomm::Port::<Option<TcpErrData>>();
let kill_ch = core::comm::Chan(&kill_po); let kill_ch = oldcomm::Chan(&kill_po);
let server_stream = uv::ll::tcp_t(); let server_stream = uv::ll::tcp_t();
let server_stream_ptr = ptr::addr_of(&server_stream); let server_stream_ptr = ptr::addr_of(&server_stream);
let server_data = { let server_data = {
server_stream_ptr: server_stream_ptr, server_stream_ptr: server_stream_ptr,
stream_closed_ch: core::comm::Chan(&stream_closed_po), stream_closed_ch: oldcomm::Chan(&stream_closed_po),
kill_ch: kill_ch, kill_ch: kill_ch,
on_connect_cb: move on_connect_cb, on_connect_cb: move on_connect_cb,
iotask: iotask, iotask: iotask,
@ -618,7 +617,7 @@ fn listen_common(host_ip: ip::IpAddr, port: uint, backlog: uint,
}; };
let server_data_ptr = ptr::addr_of(&server_data); let server_data_ptr = ptr::addr_of(&server_data);
let setup_result = do core::comm::listen |setup_ch| { let setup_result = do oldcomm::listen |setup_ch| {
// this is to address a compiler warning about // this is to address a compiler warning about
// an implicit copy.. it seems that double nested // an implicit copy.. it seems that double nested
// will defeat a move sigil, as is done to the host_ip // will defeat a move sigil, as is done to the host_ip
@ -652,25 +651,25 @@ fn listen_common(host_ip: ip::IpAddr, port: uint, backlog: uint,
match uv::ll::listen(server_stream_ptr, match uv::ll::listen(server_stream_ptr,
backlog as libc::c_int, backlog as libc::c_int,
tcp_lfc_on_connection_cb) { tcp_lfc_on_connection_cb) {
0i32 => core::comm::send(setup_ch, None), 0i32 => oldcomm::send(setup_ch, None),
_ => { _ => {
log(debug, ~"failure to uv_listen()"); log(debug, ~"failure to uv_listen()");
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
core::comm::send(setup_ch, Some(err_data)); oldcomm::send(setup_ch, Some(err_data));
} }
} }
} }
_ => { _ => {
log(debug, ~"failure to uv_tcp_bind"); log(debug, ~"failure to uv_tcp_bind");
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
core::comm::send(setup_ch, Some(err_data)); oldcomm::send(setup_ch, Some(err_data));
} }
} }
} }
_ => { _ => {
log(debug, ~"failure to uv_tcp_init"); log(debug, ~"failure to uv_tcp_init");
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
core::comm::send(setup_ch, Some(err_data)); oldcomm::send(setup_ch, Some(err_data));
} }
} }
}; };
@ -704,7 +703,7 @@ fn listen_common(host_ip: ip::IpAddr, port: uint, backlog: uint,
} }
None => { None => {
on_establish_cb(kill_ch); on_establish_cb(kill_ch);
let kill_result = core::comm::recv(kill_po); let kill_result = oldcomm::recv(kill_po);
do iotask::interact(iotask) |loop_ptr| unsafe { do iotask::interact(iotask) |loop_ptr| unsafe {
log(debug, fmt!("tcp::listen post-kill recv hl interact %?", log(debug, fmt!("tcp::listen post-kill recv hl interact %?",
loop_ptr)); loop_ptr));
@ -745,12 +744,12 @@ pub fn socket_buf(sock: TcpSocket) -> TcpSocketBuf {
/// Convenience methods extending `net::tcp::tcp_socket` /// Convenience methods extending `net::tcp::tcp_socket`
impl TcpSocket { impl TcpSocket {
pub fn read_start() -> result::Result<comm::Port< pub fn read_start() -> result::Result<oldcomm::Port<
result::Result<~[u8], TcpErrData>>, TcpErrData> { result::Result<~[u8], TcpErrData>>, TcpErrData> {
read_start(&self) read_start(&self)
} }
pub fn read_stop(read_port: pub fn read_stop(read_port:
comm::Port<result::Result<~[u8], TcpErrData>>) -> oldcomm::Port<result::Result<~[u8], TcpErrData>>) ->
result::Result<(), TcpErrData> { result::Result<(), TcpErrData> {
read_stop(&self, move read_port) read_stop(&self, move read_port)
} }
@ -877,8 +876,8 @@ impl TcpSocketBuf: io::Writer {
// INTERNAL API // INTERNAL API
fn tear_down_socket_data(socket_data: @TcpSocketData) unsafe { fn tear_down_socket_data(socket_data: @TcpSocketData) unsafe {
let closed_po = core::comm::Port::<()>(); let closed_po = oldcomm::Port::<()>();
let closed_ch = core::comm::Chan(&closed_po); let closed_ch = oldcomm::Chan(&closed_po);
let close_data = { let close_data = {
closed_ch: closed_ch closed_ch: closed_ch
}; };
@ -891,7 +890,7 @@ fn tear_down_socket_data(socket_data: @TcpSocketData) unsafe {
close_data_ptr); close_data_ptr);
uv::ll::close(stream_handle_ptr, tcp_socket_dtor_close_cb); uv::ll::close(stream_handle_ptr, tcp_socket_dtor_close_cb);
}; };
core::comm::recv(closed_po); oldcomm::recv(closed_po);
//the line below will most likely crash //the line below will most likely crash
//log(debug, fmt!("about to free socket_data at %?", socket_data)); //log(debug, fmt!("about to free socket_data at %?", socket_data));
rustrt::rust_uv_current_kernel_free(stream_handle_ptr rustrt::rust_uv_current_kernel_free(stream_handle_ptr
@ -915,7 +914,7 @@ fn read_common_impl(socket_data: *TcpSocketData, timeout_msecs: uint)
timer::recv_timeout( timer::recv_timeout(
iotask, timeout_msecs, result::get(&rs_result)) iotask, timeout_msecs, result::get(&rs_result))
} else { } else {
Some(core::comm::recv(result::get(&rs_result))) Some(oldcomm::recv(result::get(&rs_result)))
}; };
log(debug, ~"tcp::read after recv_timeout"); log(debug, ~"tcp::read after recv_timeout");
match move read_result { match move read_result {
@ -941,23 +940,23 @@ fn read_common_impl(socket_data: *TcpSocketData, timeout_msecs: uint)
fn read_stop_common_impl(socket_data: *TcpSocketData) -> fn read_stop_common_impl(socket_data: *TcpSocketData) ->
result::Result<(), TcpErrData> unsafe { result::Result<(), TcpErrData> unsafe {
let stream_handle_ptr = (*socket_data).stream_handle_ptr; let stream_handle_ptr = (*socket_data).stream_handle_ptr;
let stop_po = core::comm::Port::<Option<TcpErrData>>(); let stop_po = oldcomm::Port::<Option<TcpErrData>>();
let stop_ch = core::comm::Chan(&stop_po); let stop_ch = oldcomm::Chan(&stop_po);
do iotask::interact((*socket_data).iotask) |loop_ptr| unsafe { do iotask::interact((*socket_data).iotask) |loop_ptr| unsafe {
log(debug, ~"in interact cb for tcp::read_stop"); log(debug, ~"in interact cb for tcp::read_stop");
match uv::ll::read_stop(stream_handle_ptr as *uv::ll::uv_stream_t) { match uv::ll::read_stop(stream_handle_ptr as *uv::ll::uv_stream_t) {
0i32 => { 0i32 => {
log(debug, ~"successfully called uv_read_stop"); log(debug, ~"successfully called uv_read_stop");
core::comm::send(stop_ch, None); oldcomm::send(stop_ch, None);
} }
_ => { _ => {
log(debug, ~"failure in calling uv_read_stop"); log(debug, ~"failure in calling uv_read_stop");
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
core::comm::send(stop_ch, Some(err_data.to_tcp_err())); oldcomm::send(stop_ch, Some(err_data.to_tcp_err()));
} }
} }
}; };
match core::comm::recv(stop_po) { match oldcomm::recv(stop_po) {
Some(ref err_data) => result::Err(err_data.to_tcp_err()), Some(ref err_data) => result::Err(err_data.to_tcp_err()),
None => result::Ok(()) None => result::Ok(())
} }
@ -965,11 +964,11 @@ fn read_stop_common_impl(socket_data: *TcpSocketData) ->
// shared impl for read_start // shared impl for read_start
fn read_start_common_impl(socket_data: *TcpSocketData) fn read_start_common_impl(socket_data: *TcpSocketData)
-> result::Result<comm::Port< -> result::Result<oldcomm::Port<
result::Result<~[u8], TcpErrData>>, TcpErrData> unsafe { result::Result<~[u8], TcpErrData>>, TcpErrData> unsafe {
let stream_handle_ptr = (*socket_data).stream_handle_ptr; let stream_handle_ptr = (*socket_data).stream_handle_ptr;
let start_po = core::comm::Port::<Option<uv::ll::uv_err_data>>(); let start_po = oldcomm::Port::<Option<uv::ll::uv_err_data>>();
let start_ch = core::comm::Chan(&start_po); let start_ch = oldcomm::Chan(&start_po);
log(debug, ~"in tcp::read_start before interact loop"); log(debug, ~"in tcp::read_start before interact loop");
do iotask::interact((*socket_data).iotask) |loop_ptr| unsafe { do iotask::interact((*socket_data).iotask) |loop_ptr| unsafe {
log(debug, fmt!("in tcp::read_start interact cb %?", loop_ptr)); log(debug, fmt!("in tcp::read_start interact cb %?", loop_ptr));
@ -978,16 +977,16 @@ fn read_start_common_impl(socket_data: *TcpSocketData)
on_tcp_read_cb) { on_tcp_read_cb) {
0i32 => { 0i32 => {
log(debug, ~"success doing uv_read_start"); log(debug, ~"success doing uv_read_start");
core::comm::send(start_ch, None); oldcomm::send(start_ch, None);
} }
_ => { _ => {
log(debug, ~"error attempting uv_read_start"); log(debug, ~"error attempting uv_read_start");
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
core::comm::send(start_ch, Some(err_data)); oldcomm::send(start_ch, Some(err_data));
} }
} }
}; };
match core::comm::recv(start_po) { match oldcomm::recv(start_po) {
Some(ref err_data) => result::Err(err_data.to_tcp_err()), Some(ref err_data) => result::Err(err_data.to_tcp_err()),
None => result::Ok((*socket_data).reader_po) None => result::Ok((*socket_data).reader_po)
} }
@ -1006,9 +1005,9 @@ fn write_common_impl(socket_data_ptr: *TcpSocketData,
vec::raw::to_ptr(raw_write_data), vec::raw::to_ptr(raw_write_data),
vec::len(raw_write_data)) ]; vec::len(raw_write_data)) ];
let write_buf_vec_ptr = ptr::addr_of(&write_buf_vec); let write_buf_vec_ptr = ptr::addr_of(&write_buf_vec);
let result_po = core::comm::Port::<TcpWriteResult>(); let result_po = oldcomm::Port::<TcpWriteResult>();
let write_data = { let write_data = {
result_ch: core::comm::Chan(&result_po) result_ch: oldcomm::Chan(&result_po)
}; };
let write_data_ptr = ptr::addr_of(&write_data); let write_data_ptr = ptr::addr_of(&write_data);
do iotask::interact((*socket_data_ptr).iotask) |loop_ptr| unsafe { do iotask::interact((*socket_data_ptr).iotask) |loop_ptr| unsafe {
@ -1024,7 +1023,7 @@ fn write_common_impl(socket_data_ptr: *TcpSocketData,
_ => { _ => {
log(debug, ~"error invoking uv_write()"); log(debug, ~"error invoking uv_write()");
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
core::comm::send((*write_data_ptr).result_ch, oldcomm::send((*write_data_ptr).result_ch,
TcpWriteError(err_data.to_tcp_err())); TcpWriteError(err_data.to_tcp_err()));
} }
} }
@ -1033,7 +1032,7 @@ fn write_common_impl(socket_data_ptr: *TcpSocketData,
// and waiting here for the write to complete, we should transfer // and waiting here for the write to complete, we should transfer
// ownership of everything to the I/O task and let it deal with the // ownership of everything to the I/O task and let it deal with the
// aftermath, so we don't have to sit here blocking. // aftermath, so we don't have to sit here blocking.
match core::comm::recv(result_po) { match oldcomm::recv(result_po) {
TcpWriteSuccess => result::Ok(()), TcpWriteSuccess => result::Ok(()),
TcpWriteError(ref err_data) => result::Err(err_data.to_tcp_err()) TcpWriteError(ref err_data) => result::Err(err_data.to_tcp_err())
} }
@ -1045,8 +1044,8 @@ enum TcpNewConnection {
type TcpListenFcData = { type TcpListenFcData = {
server_stream_ptr: *uv::ll::uv_tcp_t, server_stream_ptr: *uv::ll::uv_tcp_t,
stream_closed_ch: comm::Chan<()>, stream_closed_ch: oldcomm::Chan<()>,
kill_ch: comm::Chan<Option<TcpErrData>>, kill_ch: oldcomm::Chan<Option<TcpErrData>>,
on_connect_cb: fn~(*uv::ll::uv_tcp_t), on_connect_cb: fn~(*uv::ll::uv_tcp_t),
iotask: IoTask, iotask: IoTask,
ipv6: bool, ipv6: bool,
@ -1056,7 +1055,7 @@ type TcpListenFcData = {
extern fn tcp_lfc_close_cb(handle: *uv::ll::uv_tcp_t) unsafe { extern fn tcp_lfc_close_cb(handle: *uv::ll::uv_tcp_t) unsafe {
let server_data_ptr = uv::ll::get_data_for_uv_handle( let server_data_ptr = uv::ll::get_data_for_uv_handle(
handle) as *TcpListenFcData; handle) as *TcpListenFcData;
core::comm::send((*server_data_ptr).stream_closed_ch, ()); oldcomm::send((*server_data_ptr).stream_closed_ch, ());
} }
extern fn tcp_lfc_on_connection_cb(handle: *uv::ll::uv_tcp_t, extern fn tcp_lfc_on_connection_cb(handle: *uv::ll::uv_tcp_t,
@ -1069,7 +1068,7 @@ extern fn tcp_lfc_on_connection_cb(handle: *uv::ll::uv_tcp_t,
0i32 => ((*server_data_ptr).on_connect_cb)(handle), 0i32 => ((*server_data_ptr).on_connect_cb)(handle),
_ => { _ => {
let loop_ptr = uv::ll::get_loop_for_uv_handle(handle); let loop_ptr = uv::ll::get_loop_for_uv_handle(handle);
core::comm::send(kill_ch, oldcomm::send(kill_ch,
Some(uv::ll::get_last_err_data(loop_ptr) Some(uv::ll::get_last_err_data(loop_ptr)
.to_tcp_err())); .to_tcp_err()));
(*server_data_ptr).active = false; (*server_data_ptr).active = false;
@ -1094,7 +1093,7 @@ enum TcpWriteResult {
} }
enum TcpReadStartResult { enum TcpReadStartResult {
TcpReadStartSuccess(comm::Port<TcpReadResult>), TcpReadStartSuccess(oldcomm::Port<TcpReadResult>),
TcpReadStartError(TcpErrData) TcpReadStartError(TcpErrData)
} }
@ -1129,7 +1128,7 @@ extern fn on_tcp_read_cb(stream: *uv::ll::uv_stream_t,
log(debug, fmt!("on_tcp_read_cb: incoming err.. name %? msg %?", log(debug, fmt!("on_tcp_read_cb: incoming err.. name %? msg %?",
err_data.err_name, err_data.err_msg)); err_data.err_name, err_data.err_msg));
let reader_ch = (*socket_data_ptr).reader_ch; let reader_ch = (*socket_data_ptr).reader_ch;
core::comm::send(reader_ch, result::Err(err_data)); oldcomm::send(reader_ch, result::Err(err_data));
} }
// do nothing .. unneeded buf // do nothing .. unneeded buf
0 => (), 0 => (),
@ -1140,7 +1139,7 @@ extern fn on_tcp_read_cb(stream: *uv::ll::uv_stream_t,
let reader_ch = (*socket_data_ptr).reader_ch; let reader_ch = (*socket_data_ptr).reader_ch;
let buf_base = uv::ll::get_base_from_buf(buf); let buf_base = uv::ll::get_base_from_buf(buf);
let new_bytes = vec::from_buf(buf_base, nread as uint); let new_bytes = vec::from_buf(buf_base, nread as uint);
core::comm::send(reader_ch, result::Ok(new_bytes)); oldcomm::send(reader_ch, result::Ok(new_bytes));
} }
} }
uv::ll::free_base_of_buf(buf); uv::ll::free_base_of_buf(buf);
@ -1160,14 +1159,14 @@ extern fn on_alloc_cb(handle: *libc::c_void,
} }
type TcpSocketCloseData = { type TcpSocketCloseData = {
closed_ch: comm::Chan<()> closed_ch: oldcomm::Chan<()>
}; };
extern fn tcp_socket_dtor_close_cb(handle: *uv::ll::uv_tcp_t) unsafe { extern fn tcp_socket_dtor_close_cb(handle: *uv::ll::uv_tcp_t) unsafe {
let data = uv::ll::get_data_for_uv_handle(handle) let data = uv::ll::get_data_for_uv_handle(handle)
as *TcpSocketCloseData; as *TcpSocketCloseData;
let closed_ch = (*data).closed_ch; let closed_ch = (*data).closed_ch;
core::comm::send(closed_ch, ()); oldcomm::send(closed_ch, ());
log(debug, ~"tcp_socket_dtor_close_cb exiting.."); log(debug, ~"tcp_socket_dtor_close_cb exiting..");
} }
@ -1177,31 +1176,31 @@ extern fn tcp_write_complete_cb(write_req: *uv::ll::uv_write_t,
as *WriteReqData; as *WriteReqData;
if status == 0i32 { if status == 0i32 {
log(debug, ~"successful write complete"); log(debug, ~"successful write complete");
core::comm::send((*write_data_ptr).result_ch, TcpWriteSuccess); oldcomm::send((*write_data_ptr).result_ch, TcpWriteSuccess);
} else { } else {
let stream_handle_ptr = uv::ll::get_stream_handle_from_write_req( let stream_handle_ptr = uv::ll::get_stream_handle_from_write_req(
write_req); write_req);
let loop_ptr = uv::ll::get_loop_for_uv_handle(stream_handle_ptr); let loop_ptr = uv::ll::get_loop_for_uv_handle(stream_handle_ptr);
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
log(debug, ~"failure to write"); log(debug, ~"failure to write");
core::comm::send((*write_data_ptr).result_ch, oldcomm::send((*write_data_ptr).result_ch,
TcpWriteError(err_data)); TcpWriteError(err_data));
} }
} }
type WriteReqData = { type WriteReqData = {
result_ch: comm::Chan<TcpWriteResult> result_ch: oldcomm::Chan<TcpWriteResult>
}; };
type ConnectReqData = { type ConnectReqData = {
result_ch: comm::Chan<ConnAttempt>, result_ch: oldcomm::Chan<ConnAttempt>,
closed_signal_ch: comm::Chan<()> closed_signal_ch: oldcomm::Chan<()>
}; };
extern fn stream_error_close_cb(handle: *uv::ll::uv_tcp_t) unsafe { extern fn stream_error_close_cb(handle: *uv::ll::uv_tcp_t) unsafe {
let data = uv::ll::get_data_for_uv_handle(handle) as let data = uv::ll::get_data_for_uv_handle(handle) as
*ConnectReqData; *ConnectReqData;
core::comm::send((*data).closed_signal_ch, ()); oldcomm::send((*data).closed_signal_ch, ());
log(debug, fmt!("exiting steam_error_close_cb for %?", handle)); log(debug, fmt!("exiting steam_error_close_cb for %?", handle));
} }
@ -1220,7 +1219,7 @@ extern fn tcp_connect_on_connect_cb(connect_req_ptr: *uv::ll::uv_connect_t,
match status { match status {
0i32 => { 0i32 => {
log(debug, ~"successful tcp connection!"); log(debug, ~"successful tcp connection!");
core::comm::send(result_ch, ConnSuccess); oldcomm::send(result_ch, ConnSuccess);
} }
_ => { _ => {
log(debug, ~"error in tcp_connect_on_connect_cb"); log(debug, ~"error in tcp_connect_on_connect_cb");
@ -1228,7 +1227,7 @@ extern fn tcp_connect_on_connect_cb(connect_req_ptr: *uv::ll::uv_connect_t,
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
log(debug, fmt!("err_data %? %?", err_data.err_name, log(debug, fmt!("err_data %? %?", err_data.err_name,
err_data.err_msg)); err_data.err_msg));
core::comm::send(result_ch, ConnFailure(err_data)); oldcomm::send(result_ch, ConnFailure(err_data));
uv::ll::set_data_for_uv_handle(tcp_stream_ptr, uv::ll::set_data_for_uv_handle(tcp_stream_ptr,
conn_data_ptr); conn_data_ptr);
uv::ll::close(tcp_stream_ptr, stream_error_close_cb); uv::ll::close(tcp_stream_ptr, stream_error_close_cb);
@ -1243,8 +1242,8 @@ enum ConnAttempt {
} }
type TcpSocketData = { type TcpSocketData = {
reader_po: comm::Port<result::Result<~[u8], TcpErrData>>, reader_po: oldcomm::Port<result::Result<~[u8], TcpErrData>>,
reader_ch: comm::Chan<result::Result<~[u8], TcpErrData>>, reader_ch: oldcomm::Chan<result::Result<~[u8], TcpErrData>>,
stream_handle_ptr: *uv::ll::uv_tcp_t, stream_handle_ptr: *uv::ll::uv_tcp_t,
connect_req: uv::ll::uv_connect_t, connect_req: uv::ll::uv_connect_t,
write_req: uv::ll::uv_write_t, write_req: uv::ll::uv_write_t,
@ -1337,14 +1336,14 @@ mod test {
let expected_req = ~"ping"; let expected_req = ~"ping";
let expected_resp = ~"pong"; let expected_resp = ~"pong";
let server_result_po = core::comm::Port::<~str>(); let server_result_po = oldcomm::Port::<~str>();
let server_result_ch = core::comm::Chan(&server_result_po); let server_result_ch = oldcomm::Chan(&server_result_po);
let cont_po = core::comm::Port::<()>(); let cont_po = oldcomm::Port::<()>();
let cont_ch = core::comm::Chan(&cont_po); let cont_ch = oldcomm::Chan(&cont_po);
// server // server
do task::spawn_sched(task::ManualThreads(1u)) { do task::spawn_sched(task::ManualThreads(1u)) {
let actual_req = do comm::listen |server_ch| { let actual_req = do oldcomm::listen |server_ch| {
run_tcp_test_server( run_tcp_test_server(
server_ip, server_ip,
server_port, server_port,
@ -1355,10 +1354,10 @@ mod test {
}; };
server_result_ch.send(actual_req); server_result_ch.send(actual_req);
}; };
core::comm::recv(cont_po); oldcomm::recv(cont_po);
// client // client
log(debug, ~"server started, firing up client.."); log(debug, ~"server started, firing up client..");
let actual_resp_result = do core::comm::listen |client_ch| { let actual_resp_result = do oldcomm::listen |client_ch| {
run_tcp_test_client( run_tcp_test_client(
server_ip, server_ip,
server_port, server_port,
@ -1368,7 +1367,7 @@ mod test {
}; };
assert actual_resp_result.is_ok(); assert actual_resp_result.is_ok();
let actual_resp = actual_resp_result.get(); let actual_resp = actual_resp_result.get();
let actual_req = core::comm::recv(server_result_po); let actual_req = oldcomm::recv(server_result_po);
log(debug, fmt!("REQ: expected: '%s' actual: '%s'", log(debug, fmt!("REQ: expected: '%s' actual: '%s'",
expected_req, actual_req)); expected_req, actual_req));
log(debug, fmt!("RESP: expected: '%s' actual: '%s'", log(debug, fmt!("RESP: expected: '%s' actual: '%s'",
@ -1382,14 +1381,14 @@ mod test {
let server_port = 8887u; let server_port = 8887u;
let expected_resp = ~"pong"; let expected_resp = ~"pong";
let server_result_po = core::comm::Port::<~str>(); let server_result_po = oldcomm::Port::<~str>();
let server_result_ch = core::comm::Chan(&server_result_po); let server_result_ch = oldcomm::Chan(&server_result_po);
let cont_po = core::comm::Port::<()>(); let cont_po = oldcomm::Port::<()>();
let cont_ch = core::comm::Chan(&cont_po); let cont_ch = oldcomm::Chan(&cont_po);
// server // server
do task::spawn_sched(task::ManualThreads(1u)) { do task::spawn_sched(task::ManualThreads(1u)) {
let actual_req = do comm::listen |server_ch| { let actual_req = do oldcomm::listen |server_ch| {
run_tcp_test_server( run_tcp_test_server(
server_ip, server_ip,
server_port, server_port,
@ -1400,10 +1399,10 @@ mod test {
}; };
server_result_ch.send(actual_req); server_result_ch.send(actual_req);
}; };
core::comm::recv(cont_po); oldcomm::recv(cont_po);
// client // client
log(debug, ~"server started, firing up client.."); log(debug, ~"server started, firing up client..");
do core::comm::listen |client_ch| { do oldcomm::listen |client_ch| {
let server_ip_addr = ip::v4::parse_addr(server_ip); let server_ip_addr = ip::v4::parse_addr(server_ip);
let iotask = uv::global_loop::get(); let iotask = uv::global_loop::get();
let connect_result = connect(move server_ip_addr, server_port, let connect_result = connect(move server_ip_addr, server_port,
@ -1430,7 +1429,7 @@ mod test {
let expected_req = ~"ping"; let expected_req = ~"ping";
// client // client
log(debug, ~"firing up client.."); log(debug, ~"firing up client..");
let actual_resp_result = do core::comm::listen |client_ch| { let actual_resp_result = do oldcomm::listen |client_ch| {
run_tcp_test_client( run_tcp_test_client(
server_ip, server_ip,
server_port, server_port,
@ -1450,14 +1449,14 @@ mod test {
let expected_req = ~"ping"; let expected_req = ~"ping";
let expected_resp = ~"pong"; let expected_resp = ~"pong";
let server_result_po = core::comm::Port::<~str>(); let server_result_po = oldcomm::Port::<~str>();
let server_result_ch = core::comm::Chan(&server_result_po); let server_result_ch = oldcomm::Chan(&server_result_po);
let cont_po = core::comm::Port::<()>(); let cont_po = oldcomm::Port::<()>();
let cont_ch = core::comm::Chan(&cont_po); let cont_ch = oldcomm::Chan(&cont_po);
// server // server
do task::spawn_sched(task::ManualThreads(1u)) { do task::spawn_sched(task::ManualThreads(1u)) {
let actual_req = do comm::listen |server_ch| { let actual_req = do oldcomm::listen |server_ch| {
run_tcp_test_server( run_tcp_test_server(
server_ip, server_ip,
server_port, server_port,
@ -1468,7 +1467,7 @@ mod test {
}; };
server_result_ch.send(actual_req); server_result_ch.send(actual_req);
}; };
core::comm::recv(cont_po); oldcomm::recv(cont_po);
// this one should fail.. // this one should fail..
let listen_err = run_tcp_test_server_fail( let listen_err = run_tcp_test_server_fail(
server_ip, server_ip,
@ -1476,7 +1475,7 @@ mod test {
hl_loop); hl_loop);
// client.. just doing this so that the first server tears down // client.. just doing this so that the first server tears down
log(debug, ~"server started, firing up client.."); log(debug, ~"server started, firing up client..");
do core::comm::listen |client_ch| { do oldcomm::listen |client_ch| {
run_tcp_test_client( run_tcp_test_client(
server_ip, server_ip,
server_port, server_port,
@ -1574,14 +1573,14 @@ mod test {
let expected_req = ~"GET /"; let expected_req = ~"GET /";
let expected_resp = ~"A string\nwith multiple lines\n"; let expected_resp = ~"A string\nwith multiple lines\n";
let server_result_po = core::comm::Port::<~str>(); let server_result_po = oldcomm::Port::<~str>();
let server_result_ch = core::comm::Chan(&server_result_po); let server_result_ch = oldcomm::Chan(&server_result_po);
let cont_po = core::comm::Port::<()>(); let cont_po = oldcomm::Port::<()>();
let cont_ch = core::comm::Chan(&cont_po); let cont_ch = oldcomm::Chan(&cont_po);
// server // server
do task::spawn_sched(task::ManualThreads(1u)) { do task::spawn_sched(task::ManualThreads(1u)) {
let actual_req = do comm::listen |server_ch| { let actual_req = do oldcomm::listen |server_ch| {
run_tcp_test_server( run_tcp_test_server(
server_ip, server_ip,
server_port, server_port,
@ -1592,7 +1591,7 @@ mod test {
}; };
server_result_ch.send(actual_req); server_result_ch.send(actual_req);
}; };
core::comm::recv(cont_po); oldcomm::recv(cont_po);
// client // client
log(debug, ~"server started, firing up client.."); log(debug, ~"server started, firing up client..");
let server_addr = ip::v4::parse_addr(server_ip); let server_addr = ip::v4::parse_addr(server_ip);
@ -1626,8 +1625,8 @@ mod test {
} }
fn run_tcp_test_server(server_ip: &str, server_port: uint, resp: ~str, fn run_tcp_test_server(server_ip: &str, server_port: uint, resp: ~str,
server_ch: comm::Chan<~str>, server_ch: oldcomm::Chan<~str>,
cont_ch: comm::Chan<()>, cont_ch: oldcomm::Chan<()>,
iotask: IoTask) -> ~str { iotask: IoTask) -> ~str {
let server_ip_addr = ip::v4::parse_addr(server_ip); let server_ip_addr = ip::v4::parse_addr(server_ip);
let listen_result = listen(move server_ip_addr, server_port, 128, let listen_result = listen(move server_ip_addr, server_port, 128,
@ -1636,13 +1635,13 @@ mod test {
|kill_ch| { |kill_ch| {
log(debug, fmt!("establish_cb %?", log(debug, fmt!("establish_cb %?",
kill_ch)); kill_ch));
core::comm::send(cont_ch, ()); oldcomm::send(cont_ch, ());
}, },
// risky to run this on the loop, but some users // risky to run this on the loop, but some users
// will want the POWER // will want the POWER
|new_conn, kill_ch| { |new_conn, kill_ch| {
log(debug, ~"SERVER: new connection!"); log(debug, ~"SERVER: new connection!");
do comm::listen |cont_ch| { do oldcomm::listen |cont_ch| {
do task::spawn_sched(task::ManualThreads(1u)) { do task::spawn_sched(task::ManualThreads(1u)) {
log(debug, ~"SERVER: starting worker for new req"); log(debug, ~"SERVER: starting worker for new req");
@ -1651,7 +1650,7 @@ mod test {
if result::is_err(&accept_result) { if result::is_err(&accept_result) {
log(debug, ~"SERVER: error accept connection"); log(debug, ~"SERVER: error accept connection");
let err_data = result::get_err(&accept_result); let err_data = result::get_err(&accept_result);
core::comm::send(kill_ch, Some(err_data)); oldcomm::send(kill_ch, Some(err_data));
log(debug, log(debug,
~"SERVER/WORKER: send on err cont ch"); ~"SERVER/WORKER: send on err cont ch");
cont_ch.send(()); cont_ch.send(());
@ -1677,12 +1676,12 @@ mod test {
log(debug, ~"SERVER: before write"); log(debug, ~"SERVER: before write");
tcp_write_single(&sock, str::to_bytes(resp)); tcp_write_single(&sock, str::to_bytes(resp));
log(debug, ~"SERVER: after write.. die"); log(debug, ~"SERVER: after write.. die");
core::comm::send(kill_ch, None); oldcomm::send(kill_ch, None);
} }
result::Err(move err_data) => { result::Err(move err_data) => {
log(debug, fmt!("SERVER: error recvd: %s %s", log(debug, fmt!("SERVER: error recvd: %s %s",
err_data.err_name, err_data.err_msg)); err_data.err_name, err_data.err_msg));
core::comm::send(kill_ch, Some(err_data)); oldcomm::send(kill_ch, Some(err_data));
server_ch.send(~""); server_ch.send(~"");
} }
} }
@ -1738,7 +1737,7 @@ mod test {
} }
fn run_tcp_test_client(server_ip: &str, server_port: uint, resp: &str, fn run_tcp_test_client(server_ip: &str, server_port: uint, resp: &str,
client_ch: comm::Chan<~str>, client_ch: oldcomm::Chan<~str>,
iotask: IoTask) -> result::Result<~str, iotask: IoTask) -> result::Result<~str,
TcpConnectErrData> { TcpConnectErrData> {
let server_ip_addr = ip::v4::parse_addr(server_ip); let server_ip_addr = ip::v4::parse_addr(server_ip);

View file

@ -23,7 +23,6 @@ use result::{Ok, Err};
use io::WriterUtil; use io::WriterUtil;
use libc::size_t; use libc::size_t;
use task::TaskBuilder; use task::TaskBuilder;
use comm = core::comm;
#[abi = "cdecl"] #[abi = "cdecl"]
extern mod rustrt { extern mod rustrt {
@ -289,8 +288,8 @@ fn run_tests(opts: &TestOpts, tests: &[TestDesc],
let mut wait_idx = 0; let mut wait_idx = 0;
let mut done_idx = 0; let mut done_idx = 0;
let p = core::comm::Port(); let p = oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = oldcomm::Chan(&p);
while done_idx < total { while done_idx < total {
while wait_idx < concurrency && run_idx < total { while wait_idx < concurrency && run_idx < total {
@ -306,7 +305,7 @@ fn run_tests(opts: &TestOpts, tests: &[TestDesc],
run_idx += 1; run_idx += 1;
} }
let (test, result) = core::comm::recv(p); let (test, result) = oldcomm::recv(p);
if concurrency != 1 { if concurrency != 1 {
callback(TeWait(copy test)); callback(TeWait(copy test));
} }
@ -383,9 +382,9 @@ fn filter_tests(opts: &TestOpts,
type TestFuture = {test: TestDesc, wait: fn@() -> TestResult}; type TestFuture = {test: TestDesc, wait: fn@() -> TestResult};
fn run_test(test: TestDesc, monitor_ch: comm::Chan<MonitorMsg>) { fn run_test(test: TestDesc, monitor_ch: oldcomm::Chan<MonitorMsg>) {
if test.ignore { if test.ignore {
core::comm::send(monitor_ch, (copy test, TrIgnored)); oldcomm::send(monitor_ch, (copy test, TrIgnored));
return; return;
} }
@ -397,7 +396,7 @@ fn run_test(test: TestDesc, monitor_ch: comm::Chan<MonitorMsg>) {
}).spawn(move testfn); }).spawn(move testfn);
let task_result = option::unwrap(move result_future).recv(); let task_result = option::unwrap(move result_future).recv();
let test_result = calc_result(&test, task_result == task::Success); let test_result = calc_result(&test, task_result == task::Success);
comm::send(monitor_ch, (copy test, test_result)); oldcomm::send(monitor_ch, (copy test, test_result));
}; };
} }
@ -424,10 +423,10 @@ mod tests {
ignore: true, ignore: true,
should_fail: false should_fail: false
}; };
let p = core::comm::Port(); let p = oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = oldcomm::Chan(&p);
run_test(desc, ch); run_test(desc, ch);
let (_, res) = core::comm::recv(p); let (_, res) = oldcomm::recv(p);
assert res != TrOk; assert res != TrOk;
} }
@ -440,10 +439,10 @@ mod tests {
ignore: true, ignore: true,
should_fail: false should_fail: false
}; };
let p = core::comm::Port(); let p = oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = oldcomm::Chan(&p);
run_test(desc, ch); run_test(desc, ch);
let (_, res) = core::comm::recv(p); let (_, res) = oldcomm::recv(p);
assert res == TrIgnored; assert res == TrIgnored;
} }
@ -457,10 +456,10 @@ mod tests {
ignore: false, ignore: false,
should_fail: true should_fail: true
}; };
let p = core::comm::Port(); let p = oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = oldcomm::Chan(&p);
run_test(desc, ch); run_test(desc, ch);
let (_, res) = core::comm::recv(p); let (_, res) = oldcomm::recv(p);
assert res == TrOk; assert res == TrOk;
} }
@ -473,10 +472,10 @@ mod tests {
ignore: false, ignore: false,
should_fail: true should_fail: true
}; };
let p = core::comm::Port(); let p = oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = oldcomm::Chan(&p);
run_test(desc, ch); run_test(desc, ch);
let (_, res) = core::comm::recv(p); let (_, res) = oldcomm::recv(p);
assert res == TrFailed; assert res == TrFailed;
} }

View file

@ -14,7 +14,6 @@
use uv::iotask; use uv::iotask;
use uv::iotask::IoTask; use uv::iotask::IoTask;
use comm = core::comm;
/** /**
* Wait for timeout period then send provided value over a channel * Wait for timeout period then send provided value over a channel
@ -33,10 +32,10 @@ use comm = core::comm;
* * val - a value of type T to send over the provided `ch` * * val - a value of type T to send over the provided `ch`
*/ */
pub fn delayed_send<T: Owned>(iotask: IoTask, pub fn delayed_send<T: Owned>(iotask: IoTask,
msecs: uint, ch: comm::Chan<T>, val: T) { msecs: uint, ch: oldcomm::Chan<T>, val: T) {
unsafe { unsafe {
let timer_done_po = core::comm::Port::<()>(); let timer_done_po = oldcomm::Port::<()>();
let timer_done_ch = core::comm::Chan(&timer_done_po); let timer_done_ch = oldcomm::Chan(&timer_done_po);
let timer_done_ch_ptr = ptr::addr_of(&timer_done_ch); let timer_done_ch_ptr = ptr::addr_of(&timer_done_ch);
let timer = uv::ll::timer_t(); let timer = uv::ll::timer_t();
let timer_ptr = ptr::addr_of(&timer); let timer_ptr = ptr::addr_of(&timer);
@ -62,11 +61,11 @@ pub fn delayed_send<T: Owned>(iotask: IoTask,
} }
}; };
// delayed_send_cb has been processed by libuv // delayed_send_cb has been processed by libuv
core::comm::recv(timer_done_po); oldcomm::recv(timer_done_po);
// notify the caller immediately // notify the caller immediately
core::comm::send(ch, move(val)); oldcomm::send(ch, move(val));
// uv_close for this timer has been processed // uv_close for this timer has been processed
core::comm::recv(timer_done_po); oldcomm::recv(timer_done_po);
}; };
} }
@ -82,10 +81,10 @@ pub fn delayed_send<T: Owned>(iotask: IoTask,
* * msecs - an amount of time, in milliseconds, for the current task to block * * msecs - an amount of time, in milliseconds, for the current task to block
*/ */
pub fn sleep(iotask: IoTask, msecs: uint) { pub fn sleep(iotask: IoTask, msecs: uint) {
let exit_po = core::comm::Port::<()>(); let exit_po = oldcomm::Port::<()>();
let exit_ch = core::comm::Chan(&exit_po); let exit_ch = oldcomm::Chan(&exit_po);
delayed_send(iotask, msecs, exit_ch, ()); delayed_send(iotask, msecs, exit_ch, ());
core::comm::recv(exit_po); oldcomm::recv(exit_po);
} }
/** /**
@ -110,9 +109,9 @@ pub fn sleep(iotask: IoTask, msecs: uint) {
*/ */
pub fn recv_timeout<T: Copy Owned>(iotask: IoTask, pub fn recv_timeout<T: Copy Owned>(iotask: IoTask,
msecs: uint, msecs: uint,
wait_po: comm::Port<T>) -> Option<T> { wait_po: oldcomm::Port<T>) -> Option<T> {
let timeout_po = comm::Port::<()>(); let timeout_po = oldcomm::Port::<()>();
let timeout_ch = comm::Chan(&timeout_po); let timeout_ch = oldcomm::Chan(&timeout_po);
delayed_send(iotask, msecs, timeout_ch, ()); delayed_send(iotask, msecs, timeout_ch, ());
// FIXME: This could be written clearer (#2618) // FIXME: This could be written clearer (#2618)
either::either( either::either(
@ -122,7 +121,7 @@ pub fn recv_timeout<T: Copy Owned>(iotask: IoTask,
None None
}, |right_val| { }, |right_val| {
Some(*right_val) Some(*right_val)
}, &core::comm::select2(timeout_po, wait_po) }, &oldcomm::select2(timeout_po, wait_po)
) )
} }
@ -131,10 +130,10 @@ extern fn delayed_send_cb(handle: *uv::ll::uv_timer_t,
status: libc::c_int) unsafe { status: libc::c_int) unsafe {
log(debug, fmt!("delayed_send_cb handle %? status %?", handle, status)); log(debug, fmt!("delayed_send_cb handle %? status %?", handle, status));
let timer_done_ch = let timer_done_ch =
*(uv::ll::get_data_for_uv_handle(handle) as *comm::Chan<()>); *(uv::ll::get_data_for_uv_handle(handle) as *oldcomm::Chan<()>);
let stop_result = uv::ll::timer_stop(handle); let stop_result = uv::ll::timer_stop(handle);
if (stop_result == 0i32) { if (stop_result == 0i32) {
core::comm::send(timer_done_ch, ()); oldcomm::send(timer_done_ch, ());
uv::ll::close(handle, delayed_send_close_cb); uv::ll::close(handle, delayed_send_close_cb);
} }
else { else {
@ -147,8 +146,8 @@ extern fn delayed_send_cb(handle: *uv::ll::uv_timer_t,
extern fn delayed_send_close_cb(handle: *uv::ll::uv_timer_t) unsafe { extern fn delayed_send_close_cb(handle: *uv::ll::uv_timer_t) unsafe {
log(debug, fmt!("delayed_send_close_cb handle %?", handle)); log(debug, fmt!("delayed_send_close_cb handle %?", handle));
let timer_done_ch = let timer_done_ch =
*(uv::ll::get_data_for_uv_handle(handle) as *comm::Chan<()>); *(uv::ll::get_data_for_uv_handle(handle) as *oldcomm::Chan<()>);
comm::send(timer_done_ch, ()); oldcomm::send(timer_done_ch, ());
} }
#[cfg(test)] #[cfg(test)]
@ -170,8 +169,8 @@ mod test {
#[test] #[test]
fn test_gl_timer_sleep_stress2() { fn test_gl_timer_sleep_stress2() {
let po = core::comm::Port(); let po = oldcomm::Port();
let ch = core::comm::Chan(&po); let ch = oldcomm::Chan(&po);
let hl_loop = uv::global_loop::get(); let hl_loop = uv::global_loop::get();
let repeat = 20u; let repeat = 20u;
@ -193,13 +192,13 @@ mod test {
for iter::repeat(times) { for iter::repeat(times) {
sleep(hl_loop, rng.next() as uint % maxms); sleep(hl_loop, rng.next() as uint % maxms);
} }
core::comm::send(ch, ()); oldcomm::send(ch, ());
} }
} }
} }
for iter::repeat(repeat * spec.len()) { for iter::repeat(repeat * spec.len()) {
core::comm::recv(po) oldcomm::recv(po)
} }
} }
@ -248,8 +247,8 @@ mod test {
for iter::repeat(times as uint) { for iter::repeat(times as uint) {
let expected = rand::Rng().gen_str(16u); let expected = rand::Rng().gen_str(16u);
let test_po = core::comm::Port::<~str>(); let test_po = oldcomm::Port::<~str>();
let test_ch = core::comm::Chan(&test_po); let test_ch = oldcomm::Chan(&test_po);
do task::spawn() { do task::spawn() {
delayed_send(hl_loop, 50u, test_ch, expected); delayed_send(hl_loop, 50u, test_ch, expected);

View file

@ -17,8 +17,7 @@ use iotask = uv_iotask;
use get_gl = get; use get_gl = get;
use uv_iotask::{IoTask, spawn_iotask}; use uv_iotask::{IoTask, spawn_iotask};
use private::{chan_from_global_ptr, weaken_task}; use private::{chan_from_global_ptr, weaken_task};
use comm = core::comm; use core::oldcomm::{Port, Chan, select2, listen};
use core::comm::{Port, Chan, select2, listen};
use task::TaskBuilder; use task::TaskBuilder;
use either::{Left, Right}; use either::{Left, Right};
@ -121,9 +120,9 @@ fn spawn_loop() -> IoTask {
mod test { mod test {
extern fn simple_timer_close_cb(timer_ptr: *ll::uv_timer_t) unsafe { extern fn simple_timer_close_cb(timer_ptr: *ll::uv_timer_t) unsafe {
let exit_ch_ptr = ll::get_data_for_uv_handle( let exit_ch_ptr = ll::get_data_for_uv_handle(
timer_ptr as *libc::c_void) as *comm::Chan<bool>; timer_ptr as *libc::c_void) as *oldcomm::Chan<bool>;
let exit_ch = *exit_ch_ptr; let exit_ch = *exit_ch_ptr;
core::comm::send(exit_ch, true); oldcomm::send(exit_ch, true);
log(debug, fmt!("EXIT_CH_PTR simple_timer_close_cb exit_ch_ptr: %?", log(debug, fmt!("EXIT_CH_PTR simple_timer_close_cb exit_ch_ptr: %?",
exit_ch_ptr)); exit_ch_ptr));
} }
@ -142,8 +141,8 @@ mod test {
} }
fn impl_uv_hl_simple_timer(iotask: IoTask) unsafe { fn impl_uv_hl_simple_timer(iotask: IoTask) unsafe {
let exit_po = core::comm::Port::<bool>(); let exit_po = oldcomm::Port::<bool>();
let exit_ch = core::comm::Chan(&exit_po); let exit_ch = oldcomm::Chan(&exit_po);
let exit_ch_ptr = ptr::addr_of(&exit_ch); let exit_ch_ptr = ptr::addr_of(&exit_ch);
log(debug, fmt!("EXIT_CH_PTR newly created exit_ch_ptr: %?", log(debug, fmt!("EXIT_CH_PTR newly created exit_ch_ptr: %?",
exit_ch_ptr)); exit_ch_ptr));
@ -168,21 +167,21 @@ mod test {
fail ~"failure on ll::timer_init()"; fail ~"failure on ll::timer_init()";
} }
}; };
core::comm::recv(exit_po); oldcomm::recv(exit_po);
log(debug, ~"global_loop timer test: msg recv on exit_po, done.."); log(debug, ~"global_loop timer test: msg recv on exit_po, done..");
} }
#[test] #[test]
fn test_gl_uv_global_loop_high_level_global_timer() unsafe { fn test_gl_uv_global_loop_high_level_global_timer() unsafe {
let hl_loop = get_gl(); let hl_loop = get_gl();
let exit_po = comm::Port::<()>(); let exit_po = oldcomm::Port::<()>();
let exit_ch = comm::Chan(&exit_po); let exit_ch = oldcomm::Chan(&exit_po);
task::spawn_sched(task::ManualThreads(1u), || { task::spawn_sched(task::ManualThreads(1u), || {
impl_uv_hl_simple_timer(hl_loop); impl_uv_hl_simple_timer(hl_loop);
core::comm::send(exit_ch, ()); oldcomm::send(exit_ch, ());
}); });
impl_uv_hl_simple_timer(hl_loop); impl_uv_hl_simple_timer(hl_loop);
core::comm::recv(exit_po); oldcomm::recv(exit_po);
} }
// keeping this test ignored until some kind of stress-test-harness // keeping this test ignored until some kind of stress-test-harness
@ -191,17 +190,17 @@ mod test {
#[ignore] #[ignore]
fn test_stress_gl_uv_global_loop_high_level_global_timer() unsafe { fn test_stress_gl_uv_global_loop_high_level_global_timer() unsafe {
let hl_loop = get_gl(); let hl_loop = get_gl();
let exit_po = core::comm::Port::<()>(); let exit_po = oldcomm::Port::<()>();
let exit_ch = core::comm::Chan(&exit_po); let exit_ch = oldcomm::Chan(&exit_po);
let cycles = 5000u; let cycles = 5000u;
for iter::repeat(cycles) { for iter::repeat(cycles) {
task::spawn_sched(task::ManualThreads(1u), || { task::spawn_sched(task::ManualThreads(1u), || {
impl_uv_hl_simple_timer(hl_loop); impl_uv_hl_simple_timer(hl_loop);
core::comm::send(exit_ch, ()); oldcomm::send(exit_ch, ());
}); });
}; };
for iter::repeat(cycles) { for iter::repeat(cycles) {
core::comm::recv(exit_po); oldcomm::recv(exit_po);
}; };
log(debug, ~"test_stress_gl_uv_global_loop_high_level_global_timer"+ log(debug, ~"test_stress_gl_uv_global_loop_high_level_global_timer"+
~" exiting sucessfully!"); ~" exiting sucessfully!");

View file

@ -18,8 +18,7 @@
use libc::c_void; use libc::c_void;
use ptr::addr_of; use ptr::addr_of;
use comm = core::comm; use core::oldcomm::{Port, Chan, listen};
use core::comm::{Port, Chan, listen};
use task::TaskBuilder; use task::TaskBuilder;
use ll = uv_ll; use ll = uv_ll;
@ -178,7 +177,7 @@ mod test {
log(debug, fmt!("async_close_cb handle %?", handle)); log(debug, fmt!("async_close_cb handle %?", handle));
let exit_ch = (*(ll::get_data_for_uv_handle(handle) let exit_ch = (*(ll::get_data_for_uv_handle(handle)
as *AhData)).exit_ch; as *AhData)).exit_ch;
core::comm::send(exit_ch, ()); oldcomm::send(exit_ch, ());
} }
extern fn async_handle_cb(handle: *ll::uv_async_t, status: libc::c_int) extern fn async_handle_cb(handle: *ll::uv_async_t, status: libc::c_int)
unsafe { unsafe {
@ -187,13 +186,13 @@ mod test {
} }
type AhData = { type AhData = {
iotask: IoTask, iotask: IoTask,
exit_ch: comm::Chan<()> exit_ch: oldcomm::Chan<()>
}; };
fn impl_uv_iotask_async(iotask: IoTask) unsafe { fn impl_uv_iotask_async(iotask: IoTask) unsafe {
let async_handle = ll::async_t(); let async_handle = ll::async_t();
let ah_ptr = ptr::addr_of(&async_handle); let ah_ptr = ptr::addr_of(&async_handle);
let exit_po = core::comm::Port::<()>(); let exit_po = oldcomm::Port::<()>();
let exit_ch = core::comm::Chan(&exit_po); let exit_ch = oldcomm::Chan(&exit_po);
let ah_data = { let ah_data = {
iotask: iotask, iotask: iotask,
exit_ch: exit_ch exit_ch: exit_ch
@ -204,19 +203,19 @@ mod test {
ll::set_data_for_uv_handle(ah_ptr, ah_data_ptr as *libc::c_void); ll::set_data_for_uv_handle(ah_ptr, ah_data_ptr as *libc::c_void);
ll::async_send(ah_ptr); ll::async_send(ah_ptr);
}; };
core::comm::recv(exit_po); oldcomm::recv(exit_po);
} }
// this fn documents the bear minimum neccesary to roll your own // this fn documents the bear minimum neccesary to roll your own
// high_level_loop // high_level_loop
unsafe fn spawn_test_loop(exit_ch: comm::Chan<()>) -> IoTask { unsafe fn spawn_test_loop(exit_ch: oldcomm::Chan<()>) -> IoTask {
let iotask_port = comm::Port::<IoTask>(); let iotask_port = oldcomm::Port::<IoTask>();
let iotask_ch = comm::Chan(&iotask_port); let iotask_ch = oldcomm::Chan(&iotask_port);
do task::spawn_sched(task::ManualThreads(1u)) { do task::spawn_sched(task::ManualThreads(1u)) {
run_loop(iotask_ch); run_loop(iotask_ch);
exit_ch.send(()); exit_ch.send(());
}; };
return core::comm::recv(iotask_port); return oldcomm::recv(iotask_port);
} }
extern fn lifetime_handle_close(handle: *libc::c_void) unsafe { extern fn lifetime_handle_close(handle: *libc::c_void) unsafe {
@ -231,8 +230,8 @@ mod test {
#[test] #[test]
fn test_uv_iotask_async() unsafe { fn test_uv_iotask_async() unsafe {
let exit_po = core::comm::Port::<()>(); let exit_po = oldcomm::Port::<()>();
let exit_ch = core::comm::Chan(&exit_po); let exit_ch = oldcomm::Chan(&exit_po);
let iotask = spawn_test_loop(exit_ch); let iotask = spawn_test_loop(exit_ch);
// using this handle to manage the lifetime of the high_level_loop, // using this handle to manage the lifetime of the high_level_loop,
@ -241,20 +240,20 @@ mod test {
// under race-condition type situations.. this ensures that the loop // under race-condition type situations.. this ensures that the loop
// lives until, at least, all of the impl_uv_hl_async() runs have been // lives until, at least, all of the impl_uv_hl_async() runs have been
// called, at least. // called, at least.
let work_exit_po = core::comm::Port::<()>(); let work_exit_po = oldcomm::Port::<()>();
let work_exit_ch = core::comm::Chan(&work_exit_po); let work_exit_ch = oldcomm::Chan(&work_exit_po);
for iter::repeat(7u) { for iter::repeat(7u) {
do task::spawn_sched(task::ManualThreads(1u)) { do task::spawn_sched(task::ManualThreads(1u)) {
impl_uv_iotask_async(iotask); impl_uv_iotask_async(iotask);
core::comm::send(work_exit_ch, ()); oldcomm::send(work_exit_ch, ());
}; };
}; };
for iter::repeat(7u) { for iter::repeat(7u) {
core::comm::recv(work_exit_po); oldcomm::recv(work_exit_po);
}; };
log(debug, ~"sending teardown_loop msg.."); log(debug, ~"sending teardown_loop msg..");
exit(iotask); exit(iotask);
core::comm::recv(exit_po); oldcomm::recv(exit_po);
log(debug, ~"after recv on exit_po.. exiting.."); log(debug, ~"after recv on exit_po.. exiting..");
} }
} }

View file

@ -33,7 +33,6 @@
#[allow(non_camel_case_types)]; // C types #[allow(non_camel_case_types)]; // C types
use libc::size_t; use libc::size_t;
use comm = core::comm;
use ptr::to_unsafe_ptr; use ptr::to_unsafe_ptr;
// libuv struct mappings // libuv struct mappings
@ -1045,7 +1044,7 @@ pub mod test {
type request_wrapper = { type request_wrapper = {
write_req: *uv_write_t, write_req: *uv_write_t,
req_buf: *~[uv_buf_t], req_buf: *~[uv_buf_t],
read_chan: *comm::Chan<~str> read_chan: *oldcomm::Chan<~str>
}; };
extern fn after_close_cb(handle: *libc::c_void) { extern fn after_close_cb(handle: *libc::c_void) {
@ -1083,7 +1082,7 @@ pub mod test {
let bytes = vec::from_buf(buf_base, buf_len as uint); let bytes = vec::from_buf(buf_base, buf_len as uint);
let read_chan = *((*client_data).read_chan); let read_chan = *((*client_data).read_chan);
let msg_from_server = str::from_bytes(bytes); let msg_from_server = str::from_bytes(bytes);
core::comm::send(read_chan, msg_from_server); oldcomm::send(read_chan, msg_from_server);
close(stream as *libc::c_void, after_close_cb) close(stream as *libc::c_void, after_close_cb)
} }
else if (nread == -1) { else if (nread == -1) {
@ -1143,7 +1142,7 @@ pub mod test {
} }
fn impl_uv_tcp_request(ip: &str, port: int, req_str: &str, fn impl_uv_tcp_request(ip: &str, port: int, req_str: &str,
client_chan: *comm::Chan<~str>) unsafe { client_chan: *oldcomm::Chan<~str>) unsafe {
let test_loop = loop_new(); let test_loop = loop_new();
let tcp_handle = tcp_t(); let tcp_handle = tcp_t();
let tcp_handle_ptr = ptr::addr_of(&tcp_handle); let tcp_handle_ptr = ptr::addr_of(&tcp_handle);
@ -1268,7 +1267,7 @@ pub mod test {
log(debug, ~"SERVER: sending response to client"); log(debug, ~"SERVER: sending response to client");
read_stop(client_stream_ptr); read_stop(client_stream_ptr);
let server_chan = *((*client_data).server_chan); let server_chan = *((*client_data).server_chan);
core::comm::send(server_chan, request_str); oldcomm::send(server_chan, request_str);
let write_result = write( let write_result = write(
write_req, write_req,
client_stream_ptr as *libc::c_void, client_stream_ptr as *libc::c_void,
@ -1360,12 +1359,12 @@ pub mod test {
server: *uv_tcp_t, server: *uv_tcp_t,
server_kill_msg: ~str, server_kill_msg: ~str,
server_resp_buf: *~[uv_buf_t], server_resp_buf: *~[uv_buf_t],
server_chan: *comm::Chan<~str>, server_chan: *oldcomm::Chan<~str>,
server_write_req: *uv_write_t server_write_req: *uv_write_t
}; };
type async_handle_data = { type async_handle_data = {
continue_chan: *comm::Chan<bool> continue_chan: *oldcomm::Chan<bool>
}; };
extern fn async_close_cb(handle: *libc::c_void) { extern fn async_close_cb(handle: *libc::c_void) {
@ -1383,7 +1382,7 @@ pub mod test {
async_handle as *libc::c_void) as *async_handle_data; async_handle as *libc::c_void) as *async_handle_data;
let continue_chan = *((*data).continue_chan); let continue_chan = *((*data).continue_chan);
let should_continue = status == 0i32; let should_continue = status == 0i32;
core::comm::send(continue_chan, should_continue); oldcomm::send(continue_chan, should_continue);
close(async_handle as *libc::c_void, async_close_cb); close(async_handle as *libc::c_void, async_close_cb);
} }
@ -1391,8 +1390,8 @@ pub mod test {
server_port: int, server_port: int,
+kill_server_msg: ~str, +kill_server_msg: ~str,
+server_resp_msg: ~str, +server_resp_msg: ~str,
server_chan: *comm::Chan<~str>, server_chan: *oldcomm::Chan<~str>,
continue_chan: *comm::Chan<bool>) unsafe { continue_chan: *oldcomm::Chan<bool>) unsafe {
let test_loop = loop_new(); let test_loop = loop_new();
let tcp_server = tcp_t(); let tcp_server = tcp_t();
let tcp_server_ptr = ptr::addr_of(&tcp_server); let tcp_server_ptr = ptr::addr_of(&tcp_server);
@ -1497,13 +1496,13 @@ pub mod test {
let port = 8886; let port = 8886;
let kill_server_msg = ~"does a dog have buddha nature?"; let kill_server_msg = ~"does a dog have buddha nature?";
let server_resp_msg = ~"mu!"; let server_resp_msg = ~"mu!";
let client_port = core::comm::Port::<~str>(); let client_port = oldcomm::Port::<~str>();
let client_chan = core::comm::Chan::<~str>(&client_port); let client_chan = oldcomm::Chan::<~str>(&client_port);
let server_port = core::comm::Port::<~str>(); let server_port = oldcomm::Port::<~str>();
let server_chan = core::comm::Chan::<~str>(&server_port); let server_chan = oldcomm::Chan::<~str>(&server_port);
let continue_port = core::comm::Port::<bool>(); let continue_port = oldcomm::Port::<bool>();
let continue_chan = core::comm::Chan::<bool>(&continue_port); let continue_chan = oldcomm::Chan::<bool>(&continue_port);
let continue_chan_ptr = ptr::addr_of(&continue_chan); let continue_chan_ptr = ptr::addr_of(&continue_chan);
do task::spawn_sched(task::ManualThreads(1)) { do task::spawn_sched(task::ManualThreads(1)) {
@ -1516,7 +1515,7 @@ pub mod test {
// block until the server up is.. possibly a race? // block until the server up is.. possibly a race?
log(debug, ~"before receiving on server continue_port"); log(debug, ~"before receiving on server continue_port");
core::comm::recv(continue_port); oldcomm::recv(continue_port);
log(debug, ~"received on continue port, set up tcp client"); log(debug, ~"received on continue port, set up tcp client");
do task::spawn_sched(task::ManualThreads(1u)) { do task::spawn_sched(task::ManualThreads(1u)) {
@ -1525,8 +1524,8 @@ pub mod test {
ptr::addr_of(&client_chan)); ptr::addr_of(&client_chan));
}; };
let msg_from_client = core::comm::recv(server_port); let msg_from_client = oldcomm::recv(server_port);
let msg_from_server = core::comm::recv(client_port); let msg_from_server = oldcomm::recv(client_port);
assert str::contains(msg_from_client, kill_server_msg); assert str::contains(msg_from_client, kill_server_msg);
assert str::contains(msg_from_server, server_resp_msg); assert str::contains(msg_from_server, server_resp_msg);

View file

@ -12,7 +12,7 @@
export foo; export foo;
use core::comm::*; use core::oldcomm::*;
fn foo<T: Owned Copy>(x: T) -> Port<T> { fn foo<T: Owned Copy>(x: T) -> Port<T> {
let p = Port(); let p = Port();

View file

@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
/* /*
Minimized version of core::comm for testing. Minimized version of core::oldcomm for testing.
Could probably be more minimal. Could probably be more minimal.
*/ */
@ -22,7 +22,7 @@ export recv;
/** /**
* A communication endpoint that can receive messages * A oldcommunication endpoint that can receive messages
* *
* Each port has a unique per-task identity and may not be replicated or * Each port has a unique per-task identity and may not be replicated or
* transmitted. If a port value is copied, both copies refer to the same * transmitted. If a port value is copied, both copies refer to the same

View file

@ -26,7 +26,7 @@ use std::deque;
use std::deque::Deque; use std::deque::Deque;
use std::par; use std::par;
use io::WriterUtil; use io::WriterUtil;
use comm::*; use oldcomm::*;
use int::abs; use int::abs;
type node_id = i64; type node_id = i64;

View file

@ -14,7 +14,7 @@
// that things will look really good once we get that lock out of the // that things will look really good once we get that lock out of the
// message path. // message path.
use comm::*; use oldcomm::*;
extern mod std; extern mod std;
use std::time; use std::time;
@ -22,8 +22,8 @@ use std::future;
fn thread_ring(i: uint, fn thread_ring(i: uint,
count: uint, count: uint,
num_chan: comm::Chan<uint>, num_chan: oldcomm::Chan<uint>,
num_port: comm::Port<uint>) { num_port: oldcomm::Port<uint>) {
// Send/Receive lots of messages. // Send/Receive lots of messages.
for uint::range(0u, count) |j| { for uint::range(0u, count) |j| {
num_chan.send(i * j); num_chan.send(i * j);

View file

@ -95,9 +95,9 @@ fn transform(aa: color, bb: color) -> color {
fn creature( fn creature(
name: uint, name: uint,
color: color, color: color,
from_rendezvous: comm::Port<Option<creature_info>>, from_rendezvous: oldcomm::Port<Option<creature_info>>,
to_rendezvous: comm::Chan<creature_info>, to_rendezvous: oldcomm::Chan<creature_info>,
to_rendezvous_log: comm::Chan<~str> to_rendezvous_log: oldcomm::Chan<~str>
) { ) {
let mut color = color; let mut color = color;
let mut creatures_met = 0; let mut creatures_met = 0;
@ -105,8 +105,8 @@ fn creature(
loop { loop {
// ask for a pairing // ask for a pairing
comm::send(to_rendezvous, {name: name, color: color}); oldcomm::send(to_rendezvous, {name: name, color: color});
let resp = comm::recv(from_rendezvous); let resp = oldcomm::recv(from_rendezvous);
// log and change, or print and quit // log and change, or print and quit
match resp { match resp {
@ -123,7 +123,7 @@ fn creature(
// log creatures met and evil clones of self // log creatures met and evil clones of self
let report = fmt!("%u", creatures_met) + ~" " + let report = fmt!("%u", creatures_met) + ~" " +
show_number(evil_clones_met); show_number(evil_clones_met);
comm::send(to_rendezvous_log, report); oldcomm::send(to_rendezvous_log, report);
break; break;
} }
} }
@ -132,28 +132,28 @@ fn creature(
fn rendezvous(nn: uint, set: ~[color]) { fn rendezvous(nn: uint, set: ~[color]) {
pub fn spawn_listener<A: Send>(+f: fn~(comm::Port<A>)) -> comm::Chan<A> { pub fn spawn_listener<A: Send>(+f: fn~(oldcomm::Port<A>)) -> oldcomm::Chan<A> {
let setup_po = comm::Port(); let setup_po = oldcomm::Port();
let setup_ch = comm::Chan(&setup_po); let setup_ch = oldcomm::Chan(&setup_po);
do task::spawn |move f| { do task::spawn |move f| {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
comm::send(setup_ch, ch); oldcomm::send(setup_ch, ch);
f(move po); f(move po);
} }
comm::recv(setup_po) oldcomm::recv(setup_po)
} }
// these ports will allow us to hear from the creatures // these ports will allow us to hear from the creatures
let from_creatures: comm::Port<creature_info> = comm::Port(); let from_creatures: oldcomm::Port<creature_info> = oldcomm::Port();
let from_creatures_log: comm::Port<~str> = comm::Port(); let from_creatures_log: oldcomm::Port<~str> = oldcomm::Port();
// these channels will be passed to the creatures so they can talk to us // these channels will be passed to the creatures so they can talk to us
let to_rendezvous = comm::Chan(&from_creatures); let to_rendezvous = oldcomm::Chan(&from_creatures);
let to_rendezvous_log = comm::Chan(&from_creatures_log); let to_rendezvous_log = oldcomm::Chan(&from_creatures_log);
// these channels will allow us to talk to each creature by 'name'/index // these channels will allow us to talk to each creature by 'name'/index
let to_creature: ~[comm::Chan<Option<creature_info>>] = let to_creature: ~[oldcomm::Chan<Option<creature_info>>] =
vec::mapi(set, |ii, col| { vec::mapi(set, |ii, col| {
// create each creature as a listener with a port, and // create each creature as a listener with a port, and
// give us a channel to talk to each // give us a channel to talk to each
@ -169,24 +169,24 @@ fn rendezvous(nn: uint, set: ~[color]) {
// set up meetings... // set up meetings...
for nn.times { for nn.times {
let fst_creature: creature_info = comm::recv(from_creatures); let fst_creature: creature_info = oldcomm::recv(from_creatures);
let snd_creature: creature_info = comm::recv(from_creatures); let snd_creature: creature_info = oldcomm::recv(from_creatures);
creatures_met += 2; creatures_met += 2;
comm::send(to_creature[fst_creature.name], Some(snd_creature)); oldcomm::send(to_creature[fst_creature.name], Some(snd_creature));
comm::send(to_creature[snd_creature.name], Some(fst_creature)); oldcomm::send(to_creature[snd_creature.name], Some(fst_creature));
} }
// tell each creature to stop // tell each creature to stop
for vec::eachi(to_creature) |_ii, to_one| { for vec::eachi(to_creature) |_ii, to_one| {
comm::send(*to_one, None); oldcomm::send(*to_one, None);
} }
// save each creature's meeting stats // save each creature's meeting stats
let mut report = ~[]; let mut report = ~[];
for vec::each(to_creature) |_to_one| { for vec::each(to_creature) |_to_one| {
report.push(comm::recv(from_creatures_log)); report.push(oldcomm::recv(from_creatures_log));
} }
// print each color in the set // print each color in the set

View file

@ -129,7 +129,7 @@ fn make_sequence_processor(sz: uint, from_parent: pipes::Port<~[u8]>,
_ => { ~"" } _ => { ~"" }
}; };
//comm::send(to_parent, fmt!("yay{%u}", sz)); //oldcomm::send(to_parent, fmt!("yay{%u}", sz));
to_parent.send(move buffer); to_parent.send(move buffer);
} }

View file

@ -87,7 +87,7 @@ fn fillbyte(x: cmplx, incr: f64) -> u8 {
rv rv
} }
fn chanmb(i: uint, size: uint, ch: comm::Chan<line>) -> () fn chanmb(i: uint, size: uint, ch: oldcomm::Chan<line>) -> ()
{ {
let mut crv = ~[]; let mut crv = ~[];
let incr = 2f64/(size as f64); let incr = 2f64/(size as f64);
@ -97,7 +97,7 @@ fn chanmb(i: uint, size: uint, ch: comm::Chan<line>) -> ()
let x = cmplx {re: xincr*(j as f64) - 1.5f64, im: y}; let x = cmplx {re: xincr*(j as f64) - 1.5f64, im: y};
crv.push(fillbyte(x, incr)); crv.push(fillbyte(x, incr));
}; };
comm::send(ch, {i:i, b:crv}); oldcomm::send(ch, {i:i, b:crv});
} }
type devnull = {dn: int}; type devnull = {dn: int};
@ -110,11 +110,11 @@ impl devnull: io::Writer {
fn get_type() -> io::WriterType { io::File } fn get_type() -> io::WriterType { io::File }
} }
fn writer(path: ~str, writech: comm::Chan<comm::Chan<line>>, size: uint) fn writer(path: ~str, writech: oldcomm::Chan<oldcomm::Chan<line>>, size: uint)
{ {
let p: comm::Port<line> = comm::Port(); let p: oldcomm::Port<line> = oldcomm::Port();
let ch = comm::Chan(&p); let ch = oldcomm::Chan(&p);
comm::send(writech, ch); oldcomm::send(writech, ch);
let cout: io::Writer = match path { let cout: io::Writer = match path {
~"" => { ~"" => {
{dn: 0} as io::Writer {dn: 0} as io::Writer
@ -134,7 +134,7 @@ fn writer(path: ~str, writech: comm::Chan<comm::Chan<line>>, size: uint)
let mut done = 0_u; let mut done = 0_u;
let mut i = 0_u; let mut i = 0_u;
while i < size { while i < size {
let aline = comm::recv(p); let aline = oldcomm::recv(p);
if aline.i == done { if aline.i == done {
debug!("W %u", aline.i); debug!("W %u", aline.i);
cout.write(aline.b); cout.write(aline.b);
@ -178,12 +178,12 @@ fn main() {
let size = if vec::len(args) < 2_u { 80_u } let size = if vec::len(args) < 2_u { 80_u }
else { uint::from_str(args[1]).get() }; else { uint::from_str(args[1]).get() };
let writep = comm::Port(); let writep = oldcomm::Port();
let writech = comm::Chan(&writep); let writech = oldcomm::Chan(&writep);
do task::spawn |move path| { do task::spawn |move path| {
writer(copy path, writech, size); writer(copy path, writech, size);
}; };
let ch = comm::recv(writep); let ch = oldcomm::recv(writep);
for uint::range(0_u, size) |j| { for uint::range(0_u, size) |j| {
task::spawn(|| chanmb(j, size, ch) ); task::spawn(|| chanmb(j, size, ch) );
if j % yieldevery == 0_u { if j % yieldevery == 0_u {

View file

@ -14,7 +14,7 @@
A parallel version of fibonacci numbers. A parallel version of fibonacci numbers.
This version is meant mostly as a way of stressing and benchmarking This version is meant mostly as a way of stressing and benchmarking
the task system. It supports a lot of command-line arguments to the task system. It supports a lot of oldcommand-line arguments to
control how it runs. control how it runs.
*/ */

View file

@ -20,20 +20,20 @@
// Creates in the background 'num_tasks' tasks, all blocked forever. // Creates in the background 'num_tasks' tasks, all blocked forever.
// Doesn't return until all such tasks are ready, but doesn't block forever itself. // Doesn't return until all such tasks are ready, but doesn't block forever itself.
fn grandchild_group(num_tasks: uint) { fn grandchild_group(num_tasks: uint) {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
for num_tasks.times { for num_tasks.times {
do task::spawn { // linked do task::spawn { // linked
comm::send(ch, ()); oldcomm::send(ch, ());
comm::recv(comm::Port::<()>()); // block forever oldcomm::recv(oldcomm::Port::<()>()); // block forever
} }
} }
error!("Grandchild group getting started"); error!("Grandchild group getting started");
for num_tasks.times { for num_tasks.times {
// Make sure all above children are fully spawned; i.e., enlisted in // Make sure all above children are fully spawned; i.e., enlisted in
// their ancestor groups. // their ancestor groups.
comm::recv(po); oldcomm::recv(po);
} }
error!("Grandchild group ready to go."); error!("Grandchild group ready to go.");
// Master grandchild task exits early. // Master grandchild task exits early.

View file

@ -11,14 +11,14 @@
// Test for concurrent tasks // Test for concurrent tasks
enum msg { enum msg {
ready(comm::Chan<msg>), ready(oldcomm::Chan<msg>),
start, start,
done(int), done(int),
} }
fn calc(children: uint, parent_ch: comm::Chan<msg>) { fn calc(children: uint, parent_ch: oldcomm::Chan<msg>) {
let port = comm::Port(); let port = oldcomm::Port();
let chan = comm::Chan(&port); let chan = oldcomm::Chan(&port);
let mut child_chs = ~[]; let mut child_chs = ~[];
let mut sum = 0; let mut sum = 0;
@ -29,7 +29,7 @@ fn calc(children: uint, parent_ch: comm::Chan<msg>) {
} }
for iter::repeat (children) { for iter::repeat (children) {
match comm::recv(port) { match oldcomm::recv(port) {
ready(child_ch) => { ready(child_ch) => {
child_chs.push(child_ch); child_chs.push(child_ch);
} }
@ -37,25 +37,25 @@ fn calc(children: uint, parent_ch: comm::Chan<msg>) {
} }
} }
comm::send(parent_ch, ready(chan)); oldcomm::send(parent_ch, ready(chan));
match comm::recv(port) { match oldcomm::recv(port) {
start => { start => {
for vec::each(child_chs) |child_ch| { for vec::each(child_chs) |child_ch| {
comm::send(*child_ch, start); oldcomm::send(*child_ch, start);
} }
} }
_ => fail ~"task-perf-one-million failed (port not in start state)" _ => fail ~"task-perf-one-million failed (port not in start state)"
} }
for iter::repeat (children) { for iter::repeat (children) {
match comm::recv(port) { match oldcomm::recv(port) {
done(child_sum) => { sum += child_sum; } done(child_sum) => { sum += child_sum; }
_ => fail ~"task-perf-one-million failed (port not done)" _ => fail ~"task-perf-one-million failed (port not done)"
} }
} }
comm::send(parent_ch, done(sum + 1)); oldcomm::send(parent_ch, done(sum + 1));
} }
fn main() { fn main() {
@ -69,18 +69,18 @@ fn main() {
}; };
let children = uint::from_str(args[1]).get(); let children = uint::from_str(args[1]).get();
let port = comm::Port(); let port = oldcomm::Port();
let chan = comm::Chan(&port); let chan = oldcomm::Chan(&port);
do task::spawn { do task::spawn {
calc(children, chan); calc(children, chan);
}; };
match comm::recv(port) { match oldcomm::recv(port) {
ready(chan) => { ready(chan) => {
comm::send(chan, start); oldcomm::send(chan, start);
} }
_ => fail ~"task-perf-one-million failed (port not ready)" _ => fail ~"task-perf-one-million failed (port not ready)"
} }
let sum = match comm::recv(port) { let sum = match oldcomm::recv(port) {
done(sum) => { sum } done(sum) => { sum }
_ => fail ~"task-perf-one-million failed (port not done)" _ => fail ~"task-perf-one-million failed (port not done)"
}; };

View file

@ -13,7 +13,7 @@
This is meant primarily to demonstrate Rust's MapReduce framework. This is meant primarily to demonstrate Rust's MapReduce framework.
It takes a list of files on the command line and outputs a list of It takes a list of files on the oldcommand line and outputs a list of
words along with how many times each word is used. words along with how many times each word is used.
*/ */
@ -32,10 +32,10 @@ use io::{ReaderUtil, WriterUtil};
use std::time; use std::time;
use comm::Chan; use oldcomm::Chan;
use comm::Port; use oldcomm::Port;
use comm::recv; use oldcomm::recv;
use comm::send; use oldcomm::send;
use cmp::Eq; use cmp::Eq;
use to_bytes::IterBytes; use to_bytes::IterBytes;

View file

@ -12,7 +12,7 @@
extern mod std; extern mod std;
use std::arc; use std::arc;
use comm::*; use oldcomm::*;
fn main() { fn main() {
let v = ~[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let v = ~[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

View file

@ -10,7 +10,7 @@
extern mod std; extern mod std;
use std::arc; use std::arc;
use comm::*; use oldcomm::*;
fn main() { fn main() {
let v = ~[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let v = ~[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

View file

@ -10,20 +10,20 @@
fn main() { fn main() {
struct foo { struct foo {
_x: comm::Port<()>, _x: oldcomm::Port<()>,
} }
impl foo : Drop { impl foo : Drop {
fn finalize(&self) {} fn finalize(&self) {}
} }
fn foo(x: comm::Port<()>) -> foo { fn foo(x: oldcomm::Port<()>) -> foo {
foo { foo {
_x: x _x: x
} }
} }
let x = ~mut Some(foo(comm::Port())); let x = ~mut Some(foo(oldcomm::Port()));
do task::spawn |move x| { //~ ERROR not a sendable value do task::spawn |move x| { //~ ERROR not a sendable value
let mut y = None; let mut y = None;

View file

@ -25,7 +25,7 @@ fn foo(i:int, j: @~str) -> foo {
fn main() { fn main() {
let cat = ~"kitty"; let cat = ~"kitty";
let po = comm::Port(); //~ ERROR missing `owned` let po = oldcomm::Port(); //~ ERROR missing `owned`
let ch = comm::Chan(&po); //~ ERROR missing `owned` let ch = oldcomm::Chan(&po); //~ ERROR missing `owned`
comm::send(ch, foo(42, @(move cat))); //~ ERROR missing `owned` oldcomm::send(ch, foo(42, @(move cat))); //~ ERROR missing `owned`
} }

View file

@ -12,8 +12,8 @@
// error-pattern:1 == 2 // error-pattern:1 == 2
extern mod std; extern mod std;
use comm::Port; use oldcomm::Port;
use comm::recv; use oldcomm::recv;
fn child() { assert (1 == 2); } fn child() { assert (1 == 2); }

View file

@ -12,9 +12,9 @@
// error-pattern:fail // error-pattern:fail
extern mod std; extern mod std;
use comm::Chan; use oldcomm::Chan;
use comm::Port; use oldcomm::Port;
use comm::recv; use oldcomm::recv;
fn child() { fail; } fn child() { fail; }

View file

@ -12,8 +12,8 @@
// error-pattern:fail // error-pattern:fail
extern mod std; extern mod std;
use comm::Port; use oldcomm::Port;
use comm::recv; use oldcomm::recv;
fn grandchild() { fail ~"grandchild dies"; } fn grandchild() { fail ~"grandchild dies"; }

View file

@ -11,9 +11,9 @@
// error-pattern:1 == 2 // error-pattern:1 == 2
extern mod std; extern mod std;
use comm::Chan; use oldcomm::Chan;
use comm::Port; use oldcomm::Port;
use comm::recv; use oldcomm::recv;
fn child() { assert (1 == 2); } fn child() { assert (1 == 2); }

View file

@ -10,10 +10,10 @@
// error-pattern:meep // error-pattern:meep
extern mod std; extern mod std;
use comm::Chan; use oldcomm::Chan;
use comm::Port; use oldcomm::Port;
use comm::send; use oldcomm::send;
use comm::recv; use oldcomm::recv;
fn echo<T: Owned>(c: Chan<T>, oc: Chan<Chan<T>>) { fn echo<T: Owned>(c: Chan<T>, oc: Chan<Chan<T>>) {
// Tests that the type argument in port gets // Tests that the type argument in port gets

View file

@ -19,9 +19,9 @@ fn goodfail() {
fn main() { fn main() {
task::spawn(|| goodfail() ); task::spawn(|| goodfail() );
let po = comm::Port(); let po = oldcomm::Port();
// We shouldn't be able to get past this recv since there's no // We shouldn't be able to get past this recv since there's no
// message available // message available
let i: int = comm::recv(po); let i: int = oldcomm::recv(po);
fail ~"badfail"; fail ~"badfail";
} }

View file

@ -13,14 +13,14 @@
extern mod std; extern mod std;
fn f(c: comm::_chan<int>) { fn f(c: oldcomm::_chan<int>) {
type t = {_0: int, _1: int, _2: int}; type t = {_0: int, _1: int, _2: int};
// Allocate a box. // Allocate a box.
let x: @t = @{_0: 1, _1: 2, _2: 3}; let x: @t = @{_0: 1, _1: 2, _2: 3};
// Signal parent that we've allocated a box. // Signal parent that we've allocated a box.
comm::send(c, 1); oldcomm::send(c, 1);
loop { loop {
@ -31,12 +31,12 @@ fn f(c: comm::_chan<int>) {
// sending to the channel are never received // sending to the channel are never received
// by the parent, therefore this test cases drops // by the parent, therefore this test cases drops
// messages on the floor // messages on the floor
comm::send(c, 1); oldcomm::send(c, 1);
} }
} }
fn main() { fn main() {
let p = comm::mk_port(); let p = oldcomm::mk_port();
task::_spawn(bind f(p.mk_chan())); task::_spawn(bind f(p.mk_chan()));
let i: int; let i: int;

View file

@ -15,7 +15,7 @@
extern mod std; extern mod std;
// These tests used to be separate files, but I wanted to refactor all // These tests used to be separate files, but I wanted to refactor all
// the common code. // the oldcommon code.
use cmp::Eq; use cmp::Eq;
use std::ebml; use std::ebml;

View file

@ -10,25 +10,25 @@
// except according to those terms. // except according to those terms.
fn a(c: core::comm::Chan<int>) { core::comm::send(c, 10); } fn a(c: core::oldcomm::Chan<int>) { core::oldcomm::send(c, 10); }
fn main() { fn main() {
let p = core::comm::Port(); let p = core::oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
task::spawn(|| a(ch) ); task::spawn(|| a(ch) );
task::spawn(|| a(ch) ); task::spawn(|| a(ch) );
let mut n: int = 0; let mut n: int = 0;
n = core::comm::recv(p); n = core::oldcomm::recv(p);
n = core::comm::recv(p); n = core::oldcomm::recv(p);
// debug!("Finished."); // debug!("Finished.");
} }
fn b(c: core::comm::Chan<int>) { fn b(c: core::oldcomm::Chan<int>) {
// debug!("task b0"); // debug!("task b0");
// debug!("task b1"); // debug!("task b1");
// debug!("task b2"); // debug!("task b2");
// debug!("task b3"); // debug!("task b3");
// debug!("task b4"); // debug!("task b4");
// debug!("task b5"); // debug!("task b5");
core::comm::send(c, 10); core::oldcomm::send(c, 10);
} }

View file

@ -10,28 +10,28 @@
// except according to those terms. // except according to those terms.
fn a(c: core::comm::Chan<int>) { fn a(c: core::oldcomm::Chan<int>) {
debug!("task a0"); debug!("task a0");
debug!("task a1"); debug!("task a1");
core::comm::send(c, 10); core::oldcomm::send(c, 10);
} }
fn main() { fn main() {
let p = core::comm::Port(); let p = core::oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
task::spawn(|| a(ch) ); task::spawn(|| a(ch) );
task::spawn(|| b(ch) ); task::spawn(|| b(ch) );
let mut n: int = 0; let mut n: int = 0;
n = core::comm::recv(p); n = core::oldcomm::recv(p);
n = core::comm::recv(p); n = core::oldcomm::recv(p);
debug!("Finished."); debug!("Finished.");
} }
fn b(c: core::comm::Chan<int>) { fn b(c: core::oldcomm::Chan<int>) {
debug!("task b0"); debug!("task b0");
debug!("task b1"); debug!("task b1");
debug!("task b2"); debug!("task b2");
debug!("task b2"); debug!("task b2");
debug!("task b3"); debug!("task b3");
core::comm::send(c, 10); core::oldcomm::send(c, 10);
} }

View file

@ -10,7 +10,7 @@
// except according to those terms. // except according to those terms.
fn a(c: core::comm::Chan<int>) { fn a(c: core::oldcomm::Chan<int>) {
if true { if true {
debug!("task a"); debug!("task a");
debug!("task a"); debug!("task a");
@ -18,7 +18,7 @@ fn a(c: core::comm::Chan<int>) {
debug!("task a"); debug!("task a");
debug!("task a"); debug!("task a");
} }
core::comm::send(c, 10); core::oldcomm::send(c, 10);
} }
fn k(x: int) -> int { return 15; } fn k(x: int) -> int { return 15; }
@ -33,19 +33,19 @@ fn g(x: int, y: ~str) -> int {
fn main() { fn main() {
let mut n: int = 2 + 3 * 7; let mut n: int = 2 + 3 * 7;
let s: ~str = ~"hello there"; let s: ~str = ~"hello there";
let p = comm::Port(); let p = oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
task::spawn(|| a(ch) ); task::spawn(|| a(ch) );
task::spawn(|| b(ch) ); task::spawn(|| b(ch) );
let mut x: int = 10; let mut x: int = 10;
x = g(n, s); x = g(n, s);
log(debug, x); log(debug, x);
n = core::comm::recv(p); n = core::oldcomm::recv(p);
n = core::comm::recv(p); n = core::oldcomm::recv(p);
debug!("children finished, root finishing"); debug!("children finished, root finishing");
} }
fn b(c: core::comm::Chan<int>) { fn b(c: core::oldcomm::Chan<int>) {
if true { if true {
debug!("task b"); debug!("task b");
debug!("task b"); debug!("task b");
@ -54,5 +54,5 @@ fn b(c: core::comm::Chan<int>) {
debug!("task b"); debug!("task b");
debug!("task b"); debug!("task b");
} }
core::comm::send(c, 10); core::oldcomm::send(c, 10);
} }

View file

@ -24,9 +24,9 @@
// course preferable, as the value itself is // course preferable, as the value itself is
// irrelevant). // irrelevant).
fn foo(&&x: ()) -> core::comm::Port<()> { fn foo(&&x: ()) -> core::oldcomm::Port<()> {
let p = core::comm::Port(); let p = core::oldcomm::Port();
let c = core::comm::Chan(&p); let c = core::oldcomm::Chan(&p);
do task::spawn() |copy c, copy x| { do task::spawn() |copy c, copy x| {
c.send(x); c.send(x);
} }

View file

@ -18,7 +18,7 @@
extern mod cci_capture_clause; extern mod cci_capture_clause;
use comm::recv; use oldcomm::recv;
fn main() { fn main() {
cci_capture_clause::foo(()).recv() cci_capture_clause::foo(()).recv()

View file

@ -10,32 +10,32 @@
// Issue #763 // Issue #763
enum request { quit, close(core::comm::Chan<bool>), } enum request { quit, close(core::oldcomm::Chan<bool>), }
type ctx = core::comm::Chan<request>; type ctx = core::oldcomm::Chan<request>;
fn request_task(c: core::comm::Chan<ctx>) { fn request_task(c: core::oldcomm::Chan<ctx>) {
let p = core::comm::Port(); let p = core::oldcomm::Port();
core::comm::send(c, core::comm::Chan(&p)); core::oldcomm::send(c, core::oldcomm::Chan(&p));
let mut req: request; let mut req: request;
req = core::comm::recv(p); req = core::oldcomm::recv(p);
// Need to drop req before receiving it again // Need to drop req before receiving it again
req = core::comm::recv(p); req = core::oldcomm::recv(p);
} }
fn new_cx() -> ctx { fn new_cx() -> ctx {
let p = core::comm::Port(); let p = core::oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
let t = task::spawn(|| request_task(ch) ); let t = task::spawn(|| request_task(ch) );
let mut cx: ctx; let mut cx: ctx;
cx = core::comm::recv(p); cx = core::oldcomm::recv(p);
return cx; return cx;
} }
fn main() { fn main() {
let cx = new_cx(); let cx = new_cx();
let p = core::comm::Port::<bool>(); let p = core::oldcomm::Port::<bool>();
core::comm::send(cx, close(core::comm::Chan(&p))); core::oldcomm::send(cx, close(core::oldcomm::Chan(&p)));
core::comm::send(cx, quit); core::oldcomm::send(cx, quit);
} }

View file

@ -11,17 +11,17 @@
fn main() { fn main() {
let p = comm::Port(); let p = oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
let t = task::spawn(|| child(ch) ); let t = task::spawn(|| child(ch) );
let y = core::comm::recv(p); let y = core::oldcomm::recv(p);
error!("received"); error!("received");
log(error, y); log(error, y);
assert (y == 10); assert (y == 10);
} }
fn child(c: core::comm::Chan<int>) { fn child(c: core::oldcomm::Chan<int>) {
error!("sending"); error!("sending");
core::comm::send(c, 10); core::oldcomm::send(c, 10);
error!("value sent"); error!("value sent");
} }

View file

@ -11,12 +11,12 @@
fn main() { fn main() {
let po = core::comm::Port(); let po = core::oldcomm::Port();
let ch = core::comm::Chan(&po); let ch = core::oldcomm::Chan(&po);
core::comm::send(ch, 10); core::oldcomm::send(ch, 10);
let i = core::comm::recv(po); let i = core::oldcomm::recv(po);
assert (i == 10); assert (i == 10);
core::comm::send(ch, 11); core::oldcomm::send(ch, 11);
let j = core::comm::recv(po); let j = core::oldcomm::recv(po);
assert (j == 11); assert (j == 11);
} }

View file

@ -20,10 +20,10 @@ extern mod std;
use std::map; use std::map;
use std::map::HashMap; use std::map::HashMap;
use comm::Chan; use oldcomm::Chan;
use comm::Port; use oldcomm::Port;
use comm::send; use oldcomm::send;
use comm::recv; use oldcomm::recv;
fn map(filename: ~str, emit: map_reduce::putter) { emit(filename, ~"1"); } fn map(filename: ~str, emit: map_reduce::putter) { emit(filename, ~"1"); }

View file

@ -15,19 +15,19 @@
https://github.com/graydon/rust/issues/507 https://github.com/graydon/rust/issues/507
*/ */
fn grandchild(c: core::comm::Chan<int>) { core::comm::send(c, 42); } fn grandchild(c: core::oldcomm::Chan<int>) { core::oldcomm::send(c, 42); }
fn child(c: core::comm::Chan<int>) { fn child(c: core::oldcomm::Chan<int>) {
task::spawn(|| grandchild(c) ) task::spawn(|| grandchild(c) )
} }
fn main() { fn main() {
let p = core::comm::Port(); let p = core::oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
task::spawn(|| child(ch) ); task::spawn(|| child(ch) );
let x: int = core::comm::recv(p); let x: int = core::oldcomm::recv(p);
log(debug, x); log(debug, x);

View file

@ -10,18 +10,18 @@
enum msg { closed, received(~[u8]), } enum msg { closed, received(~[u8]), }
fn producer(c: core::comm::Chan<~[u8]>) { fn producer(c: core::oldcomm::Chan<~[u8]>) {
core::comm::send(c, ~[1u8, 2u8, 3u8, 4u8]); core::oldcomm::send(c, ~[1u8, 2u8, 3u8, 4u8]);
let empty: ~[u8] = ~[]; let empty: ~[u8] = ~[];
core::comm::send(c, empty); core::oldcomm::send(c, empty);
} }
fn packager(cb: core::comm::Chan<core::comm::Chan<~[u8]>>, msg: core::comm::Chan<msg>) { fn packager(cb: core::oldcomm::Chan<core::oldcomm::Chan<~[u8]>>, msg: core::oldcomm::Chan<msg>) {
let p: core::comm::Port<~[u8]> = core::comm::Port(); let p: core::oldcomm::Port<~[u8]> = core::oldcomm::Port();
core::comm::send(cb, core::comm::Chan(&p)); core::oldcomm::send(cb, core::oldcomm::Chan(&p));
loop { loop {
debug!("waiting for bytes"); debug!("waiting for bytes");
let data = core::comm::recv(p); let data = core::oldcomm::recv(p);
debug!("got bytes"); debug!("got bytes");
if vec::len(data) == 0u { if vec::len(data) == 0u {
debug!("got empty bytes, quitting"); debug!("got empty bytes, quitting");
@ -29,26 +29,26 @@ fn packager(cb: core::comm::Chan<core::comm::Chan<~[u8]>>, msg: core::comm::Chan
} }
debug!("sending non-empty buffer of length"); debug!("sending non-empty buffer of length");
log(debug, vec::len(data)); log(debug, vec::len(data));
core::comm::send(msg, received(data)); core::oldcomm::send(msg, received(data));
debug!("sent non-empty buffer"); debug!("sent non-empty buffer");
} }
debug!("sending closed message"); debug!("sending closed message");
core::comm::send(msg, closed); core::oldcomm::send(msg, closed);
debug!("sent closed message"); debug!("sent closed message");
} }
fn main() { fn main() {
let p: core::comm::Port<msg> = core::comm::Port(); let p: core::oldcomm::Port<msg> = core::oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
let recv_reader: core::comm::Port<core::comm::Chan<~[u8]>> = core::comm::Port(); let recv_reader: core::oldcomm::Port<core::oldcomm::Chan<~[u8]>> = core::oldcomm::Port();
let recv_reader_chan = core::comm::Chan(&recv_reader); let recv_reader_chan = core::oldcomm::Chan(&recv_reader);
let pack = task::spawn(|| packager(recv_reader_chan, ch) ); let pack = task::spawn(|| packager(recv_reader_chan, ch) );
let source_chan: core::comm::Chan<~[u8]> = core::comm::recv(recv_reader); let source_chan: core::oldcomm::Chan<~[u8]> = core::oldcomm::recv(recv_reader);
let prod = task::spawn(|| producer(source_chan) ); let prod = task::spawn(|| producer(source_chan) );
loop { loop {
let msg = core::comm::recv(p); let msg = core::oldcomm::recv(p);
match msg { match msg {
closed => { debug!("Got close message"); break; } closed => { debug!("Got close message"); break; }
received(data) => { received(data) => {

View file

@ -10,14 +10,14 @@
fn a() { fn a() {
fn doit() { fn doit() {
fn b(c: core::comm::Chan<core::comm::Chan<int>>) { fn b(c: core::oldcomm::Chan<core::oldcomm::Chan<int>>) {
let p = core::comm::Port(); let p = core::oldcomm::Port();
core::comm::send(c, core::comm::Chan(&p)); core::oldcomm::send(c, core::oldcomm::Chan(&p));
} }
let p = core::comm::Port(); let p = core::oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
task::spawn(|| b(ch) ); task::spawn(|| b(ch) );
core::comm::recv(p); core::oldcomm::recv(p);
} }
let mut i = 0; let mut i = 0;
while i < 100 { while i < 100 {

View file

@ -1,13 +1,13 @@
fn producer(c: core::comm::Chan<~[u8]>) { fn producer(c: core::oldcomm::Chan<~[u8]>) {
core::comm::send(c, core::oldcomm::send(c,
~[1u8, 2u8, 3u8, 4u8, 5u8, 6u8, 7u8, 8u8, 9u8, 10u8, 11u8, 12u8, ~[1u8, 2u8, 3u8, 4u8, 5u8, 6u8, 7u8, 8u8, 9u8, 10u8, 11u8, 12u8,
13u8]); 13u8]);
} }
fn main() { fn main() {
let p: core::comm::Port<~[u8]> = core::comm::Port(); let p: core::oldcomm::Port<~[u8]> = core::oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
let prod = task::spawn(|| producer(ch) ); let prod = task::spawn(|| producer(ch) );
let data: ~[u8] = core::comm::recv(p); let data: ~[u8] = core::oldcomm::recv(p);
} }

View file

@ -10,21 +10,21 @@
// except according to those terms. // except according to those terms.
fn main() { fn main() {
let p = core::comm::Port(); let p = core::oldcomm::Port();
let ch = core::comm::Chan(&p); let ch = core::oldcomm::Chan(&p);
let mut y: int; let mut y: int;
task::spawn(|| child(ch) ); task::spawn(|| child(ch) );
y = core::comm::recv(p); y = core::oldcomm::recv(p);
debug!("received 1"); debug!("received 1");
log(debug, y); log(debug, y);
assert (y == 10); assert (y == 10);
task::spawn(|| child(ch) ); task::spawn(|| child(ch) );
y = core::comm::recv(p); y = core::oldcomm::recv(p);
debug!("received 2"); debug!("received 2");
log(debug, y); log(debug, y);
assert (y == 10); assert (y == 10);
} }
fn child(c: core::comm::Chan<int>) { core::comm::send(c, 10); } fn child(c: core::oldcomm::Chan<int>) { core::oldcomm::send(c, 10); }

View file

@ -12,23 +12,23 @@
extern mod std; extern mod std;
fn sub(parent: comm::Chan<int>, id: int) { fn sub(parent: oldcomm::Chan<int>, id: int) {
if id == 0 { if id == 0 {
comm::send(parent, 0); oldcomm::send(parent, 0);
} else { } else {
let p = comm::Port(); let p = oldcomm::Port();
let ch = comm::Chan(&p); let ch = oldcomm::Chan(&p);
let child = task::spawn(|| sub(ch, id - 1) ); let child = task::spawn(|| sub(ch, id - 1) );
let y = comm::recv(p); let y = oldcomm::recv(p);
comm::send(parent, y + 1); oldcomm::send(parent, y + 1);
} }
} }
fn main() { fn main() {
let p = comm::Port(); let p = oldcomm::Port();
let ch = comm::Chan(&p); let ch = oldcomm::Chan(&p);
let child = task::spawn(|| sub(ch, 200) ); let child = task::spawn(|| sub(ch, 200) );
let y = comm::recv(p); let y = oldcomm::recv(p);
debug!("transmission complete"); debug!("transmission complete");
log(debug, y); log(debug, y);
assert (y == 200); assert (y == 200);

View file

@ -11,6 +11,6 @@
/* /*
* This is a multi-line comment. * This is a multi-line oldcomment.
*/ */
fn main() { } fn main() { }

View file

@ -13,7 +13,7 @@
// Regression tests for circular_buffer when using a unit // Regression tests for circular_buffer when using a unit
// that has a size that is not a power of two // that has a size that is not a power of two
// A 12-byte unit to core::comm::send over the channel // A 12-byte unit to core::oldcomm::send over the channel
type record = {val1: u32, val2: u32, val3: u32}; type record = {val1: u32, val2: u32, val3: u32};
@ -22,52 +22,52 @@ type record = {val1: u32, val2: u32, val3: u32};
// power of two so needs to be rounded up. Don't trigger any // power of two so needs to be rounded up. Don't trigger any
// assertions. // assertions.
fn test_init() { fn test_init() {
let myport = core::comm::Port(); let myport = core::oldcomm::Port();
let mychan = core::comm::Chan(&myport); let mychan = core::oldcomm::Chan(&myport);
let val: record = {val1: 0u32, val2: 0u32, val3: 0u32}; let val: record = {val1: 0u32, val2: 0u32, val3: 0u32};
core::comm::send(mychan, val); core::oldcomm::send(mychan, val);
} }
// Dump lots of items into the channel so it has to grow. // Dump lots of items into the channel so it has to grow.
// Don't trigger any assertions. // Don't trigger any assertions.
fn test_grow() { fn test_grow() {
let myport = core::comm::Port(); let myport = core::oldcomm::Port();
let mychan = core::comm::Chan(&myport); let mychan = core::oldcomm::Chan(&myport);
for uint::range(0u, 100u) |i| { for uint::range(0u, 100u) |i| {
let val: record = {val1: 0u32, val2: 0u32, val3: 0u32}; let val: record = {val1: 0u32, val2: 0u32, val3: 0u32};
core::comm::send(mychan, val); core::oldcomm::send(mychan, val);
} }
} }
// Don't allow the buffer to shrink below it's original size // Don't allow the buffer to shrink below it's original size
fn test_shrink1() { fn test_shrink1() {
let myport = core::comm::Port(); let myport = core::oldcomm::Port();
let mychan = core::comm::Chan(&myport); let mychan = core::oldcomm::Chan(&myport);
core::comm::send(mychan, 0i8); core::oldcomm::send(mychan, 0i8);
let x = core::comm::recv(myport); let x = core::oldcomm::recv(myport);
} }
fn test_shrink2() { fn test_shrink2() {
let myport = core::comm::Port(); let myport = core::oldcomm::Port();
let mychan = core::comm::Chan(&myport); let mychan = core::oldcomm::Chan(&myport);
for uint::range(0u, 100u) |_i| { for uint::range(0u, 100u) |_i| {
let val: record = {val1: 0u32, val2: 0u32, val3: 0u32}; let val: record = {val1: 0u32, val2: 0u32, val3: 0u32};
core::comm::send(mychan, val); core::oldcomm::send(mychan, val);
} }
for uint::range(0u, 100u) |_i| { let x = core::comm::recv(myport); } for uint::range(0u, 100u) |_i| { let x = core::oldcomm::recv(myport); }
} }
// Test rotating the buffer when the unit size is not a power of two // Test rotating the buffer when the unit size is not a power of two
fn test_rotate() { fn test_rotate() {
let myport = core::comm::Port(); let myport = core::oldcomm::Port();
let mychan = core::comm::Chan(&myport); let mychan = core::oldcomm::Chan(&myport);
for uint::range(0u, 100u) |i| { for uint::range(0u, 100u) |i| {
let val = {val1: i as u32, val2: i as u32, val3: i as u32}; let val = {val1: i as u32, val2: i as u32, val3: i as u32};
core::comm::send(mychan, val); core::oldcomm::send(mychan, val);
let x = core::comm::recv(myport); let x = core::oldcomm::recv(myport);
assert (x.val1 == i as u32); assert (x.val1 == i as u32);
assert (x.val2 == i as u32); assert (x.val2 == i as u32);
assert (x.val3 == i as u32); assert (x.val3 == i as u32);
@ -78,16 +78,16 @@ fn test_rotate() {
// Test rotating and growing the buffer when // Test rotating and growing the buffer when
// the unit size is not a power of two // the unit size is not a power of two
fn test_rotate_grow() { fn test_rotate_grow() {
let myport = core::comm::Port::<record>(); let myport = core::oldcomm::Port::<record>();
let mychan = core::comm::Chan(&myport); let mychan = core::oldcomm::Chan(&myport);
for uint::range(0u, 10u) |j| { for uint::range(0u, 10u) |j| {
for uint::range(0u, 10u) |i| { for uint::range(0u, 10u) |i| {
let val: record = let val: record =
{val1: i as u32, val2: i as u32, val3: i as u32}; {val1: i as u32, val2: i as u32, val3: i as u32};
core::comm::send(mychan, val); core::oldcomm::send(mychan, val);
} }
for uint::range(0u, 10u) |i| { for uint::range(0u, 10u) |i| {
let x = core::comm::recv(myport); let x = core::oldcomm::recv(myport);
assert (x.val1 == i as u32); assert (x.val1 == i as u32);
assert (x.val2 == i as u32); assert (x.val2 == i as u32);
assert (x.val3 == i as u32); assert (x.val3 == i as u32);

View file

@ -25,8 +25,8 @@ extern mod rustrt {
} }
fn main() unsafe { fn main() unsafe {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
let parent_sched_id = rustrt::rust_get_sched_id(); let parent_sched_id = rustrt::rust_get_sched_id();
error!("parent %?", parent_sched_id); error!("parent %?", parent_sched_id);
let num_threads = 1u; let num_threads = 1u;
@ -39,10 +39,10 @@ fn main() unsafe {
error!("child_sched_id %?", child_sched_id); error!("child_sched_id %?", child_sched_id);
assert child_sched_id != parent_sched_id; assert child_sched_id != parent_sched_id;
assert child_sched_id == new_sched_id; assert child_sched_id == new_sched_id;
comm::send(ch, ()); oldcomm::send(ch, ());
}; };
let fptr = cast::reinterpret_cast(&ptr::addr_of(&f)); let fptr = cast::reinterpret_cast(&ptr::addr_of(&f));
rustrt::start_task(new_task_id, fptr); rustrt::start_task(new_task_id, fptr);
cast::forget(move f); cast::forget(move f);
comm::recv(po); oldcomm::recv(po);
} }

View file

@ -17,13 +17,13 @@ fn die() {
fn iloop() { fn iloop() {
task::spawn(|| die() ); task::spawn(|| die() );
let p = comm::Port::<()>(); let p = oldcomm::Port::<()>();
let c = comm::Chan(&p); let c = oldcomm::Chan(&p);
loop { loop {
// Sending and receiving here because these actions yield, // Sending and receiving here because these actions yield,
// at which point our child can kill us // at which point our child can kill us
comm::send(c, ()); oldcomm::send(c, ());
comm::recv(p); oldcomm::recv(p);
} }
} }

View file

@ -23,12 +23,12 @@ fn test(f: int) -> test {
} }
fn main() { fn main() {
let p = core::comm::Port(); let p = core::oldcomm::Port();
let c = core::comm::Chan(&p); let c = core::oldcomm::Chan(&p);
do task::spawn() { do task::spawn() {
let p = core::comm::Port(); let p = core::oldcomm::Port();
c.send(core::comm::Chan(&p)); c.send(core::oldcomm::Chan(&p));
let _r = p.recv(); let _r = p.recv();
} }

View file

@ -11,8 +11,8 @@
// tests that ctrl's type gets inferred properly // tests that ctrl's type gets inferred properly
type command<K: Owned, V: Owned> = {key: K, val: V}; type command<K: Owned, V: Owned> = {key: K, val: V};
fn cache_server<K: Owned, V: Owned>(c: core::comm::Chan<core::comm::Chan<command<K, V>>>) { fn cache_server<K: Owned, V: Owned>(c: oldcomm::Chan<oldcomm::Chan<command<K, V>>>) {
let ctrl = core::comm::Port(); let ctrl = oldcomm::Port();
core::comm::send(c, core::comm::Chan(&ctrl)); oldcomm::send(c, oldcomm::Chan(&ctrl));
} }
fn main() { } fn main() { }

View file

@ -23,7 +23,7 @@ fn foo(i:int, j: char) -> foo {
} }
fn main() { fn main() {
let po = comm::Port::<foo>(); let po = oldcomm::Port::<foo>();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
comm::send(ch, foo(42, 'c')); oldcomm::send(ch, foo(42, 'c'));
} }

View file

@ -13,8 +13,8 @@
extern mod std; extern mod std;
use comm::Chan; use oldcomm::Chan;
use comm::send; use oldcomm::send;
fn main() { test05(); } fn main() { test05(); }

View file

@ -17,14 +17,14 @@
extern mod std; extern mod std;
type ctx = comm::Chan<int>; type ctx = oldcomm::Chan<int>;
fn iotask(cx: ctx, ip: ~str) { fn iotask(cx: ctx, ip: ~str) {
assert (ip == ~"localhost"); assert (ip == ~"localhost");
} }
fn main() { fn main() {
let p = comm::Port::<int>(); let p = oldcomm::Port::<int>();
let ch = comm::Chan(&p); let ch = oldcomm::Chan(&p);
task::spawn(|| iotask(ch, ~"localhost") ); task::spawn(|| iotask(ch, ~"localhost") );
} }

View file

@ -11,7 +11,7 @@
extern mod std; extern mod std;
fn main() { fn main() {
let p = comm::Port(); let p = oldcomm::Port();
let c = comm::Chan(&p); let c = oldcomm::Chan(&p);
comm::send(c, ~"coffee"); oldcomm::send(c, ~"coffee");
} }

View file

@ -11,7 +11,7 @@
extern mod std; extern mod std;
fn main() { fn main() {
let p = comm::Port(); let p = oldcomm::Port();
let c = comm::Chan(&p); let c = oldcomm::Chan(&p);
comm::send(c, ~"coffee"); oldcomm::send(c, ~"coffee");
} }

View file

@ -12,8 +12,8 @@ extern mod std;
fn main() { fn main() {
let c = { let c = {
let p = comm::Port(); let p = oldcomm::Port();
comm::Chan(&p) oldcomm::Chan(&p)
}; };
comm::send(c, ~"coffee"); oldcomm::send(c, ~"coffee");
} }

View file

@ -13,16 +13,16 @@ extern mod std;
// We're trying to trigger a race between send and port destruction that // We're trying to trigger a race between send and port destruction that
// results in the string not being freed // results in the string not being freed
fn starship(&&ch: comm::Chan<~str>) { fn starship(&&ch: oldcomm::Chan<~str>) {
for int::range(0, 10) |_i| { for int::range(0, 10) |_i| {
comm::send(ch, ~"pew pew"); oldcomm::send(ch, ~"pew pew");
} }
} }
fn starbase() { fn starbase() {
for int::range(0, 10) |_i| { for int::range(0, 10) |_i| {
let p = comm::Port(); let p = oldcomm::Port();
let c = comm::Chan(&p); let c = oldcomm::Chan(&p);
task::spawn(|| starship(c) ); task::spawn(|| starship(c) );
task::yield(); task::yield();
} }

View file

@ -16,9 +16,9 @@ extern mod std;
// any size, but rustc currently can because they do have size. Whether // any size, but rustc currently can because they do have size. Whether
// or not this is desirable I don't know, but here's a regression test. // or not this is desirable I don't know, but here's a regression test.
fn main() { fn main() {
let po = comm::Port(); let po = oldcomm::Port();
let ch = comm::Chan(&po); let ch = oldcomm::Chan(&po);
comm::send(ch, ()); oldcomm::send(ch, ());
let n: () = comm::recv(po); let n: () = oldcomm::recv(po);
assert (n == ()); assert (n == ());
} }

View file

@ -17,12 +17,12 @@ fn main() {
test06(); test06();
} }
fn test00_start(ch: core::comm::Chan<int>, message: int, count: int) { fn test00_start(ch: core::oldcomm::Chan<int>, message: int, count: int) {
debug!("Starting test00_start"); debug!("Starting test00_start");
let mut i: int = 0; let mut i: int = 0;
while i < count { while i < count {
debug!("Sending Message"); debug!("Sending Message");
core::comm::send(ch, message + 0); core::oldcomm::send(ch, message + 0);
i = i + 1; i = i + 1;
} }
debug!("Ending test00_start"); debug!("Ending test00_start");
@ -33,8 +33,8 @@ fn test00() {
let number_of_messages: int = 4; let number_of_messages: int = 4;
debug!("Creating tasks"); debug!("Creating tasks");
let po = core::comm::Port(); let po = core::oldcomm::Port();
let ch = core::comm::Chan(&po); let ch = core::oldcomm::Chan(&po);
let mut i: int = 0; let mut i: int = 0;
@ -50,7 +50,7 @@ fn test00() {
let mut sum: int = 0; let mut sum: int = 0;
for results.each |r| { for results.each |r| {
i = 0; i = 0;
while i < number_of_messages { sum += core::comm::recv(po); i = i + 1; } while i < number_of_messages { sum += core::oldcomm::recv(po); i = i + 1; }
} }
for results.each |r| { r.recv(); } for results.each |r| { r.recv(); }
@ -63,19 +63,19 @@ fn test00() {
} }
fn test01() { fn test01() {
let p = core::comm::Port(); let p = core::oldcomm::Port();
debug!("Reading from a port that is never written to."); debug!("Reading from a port that is never written to.");
let value: int = core::comm::recv(p); let value: int = core::oldcomm::recv(p);
log(debug, value); log(debug, value);
} }
fn test02() { fn test02() {
let p = core::comm::Port(); let p = core::oldcomm::Port();
let c = core::comm::Chan(&p); let c = core::oldcomm::Chan(&p);
debug!("Writing to a local task channel."); debug!("Writing to a local task channel.");
core::comm::send(c, 42); core::oldcomm::send(c, 42);
debug!("Reading from a local task port."); debug!("Reading from a local task port.");
let value: int = core::comm::recv(p); let value: int = core::oldcomm::recv(p);
log(debug, value); log(debug, value);
} }
@ -93,22 +93,22 @@ fn test04() {
debug!("Finishing up."); debug!("Finishing up.");
} }
fn test05_start(ch: core::comm::Chan<int>) { fn test05_start(ch: core::oldcomm::Chan<int>) {
core::comm::send(ch, 10); core::oldcomm::send(ch, 10);
core::comm::send(ch, 20); core::oldcomm::send(ch, 20);
core::comm::send(ch, 30); core::oldcomm::send(ch, 30);
core::comm::send(ch, 30); core::oldcomm::send(ch, 30);
core::comm::send(ch, 30); core::oldcomm::send(ch, 30);
} }
fn test05() { fn test05() {
let po = core::comm::Port(); let po = core::oldcomm::Port();
let ch = core::comm::Chan(&po); let ch = core::oldcomm::Chan(&po);
task::spawn(|| test05_start(ch) ); task::spawn(|| test05_start(ch) );
let mut value: int; let mut value: int;
value = core::comm::recv(po); value = core::oldcomm::recv(po);
value = core::comm::recv(po); value = core::oldcomm::recv(po);
value = core::comm::recv(po); value = core::oldcomm::recv(po);
log(debug, value); log(debug, value);
} }

View file

@ -18,7 +18,7 @@ extern mod std;
fn child() { } fn child() { }
struct notify { struct notify {
ch: comm::Chan<bool>, v: @mut bool, ch: oldcomm::Chan<bool>, v: @mut bool,
} }
impl notify : Drop { impl notify : Drop {
@ -29,19 +29,19 @@ impl notify : Drop {
task::failing(), task::failing(),
*(self.v)); *(self.v));
let b = *(self.v); let b = *(self.v);
comm::send(self.ch, b); oldcomm::send(self.ch, b);
} }
} }
fn notify(ch: comm::Chan<bool>, v: @mut bool) -> notify { fn notify(ch: oldcomm::Chan<bool>, v: @mut bool) -> notify {
notify { notify {
ch: ch, ch: ch,
v: v v: v
} }
} }
fn joinable(+f: fn~()) -> comm::Port<bool> { fn joinable(+f: fn~()) -> oldcomm::Port<bool> {
fn wrapper(+c: comm::Chan<bool>, +f: fn()) { fn wrapper(+c: oldcomm::Chan<bool>, +f: fn()) {
let b = @mut false; let b = @mut false;
error!("wrapper: task=%? allocated v=%x", error!("wrapper: task=%? allocated v=%x",
task::get_task(), task::get_task(),
@ -50,14 +50,14 @@ fn joinable(+f: fn~()) -> comm::Port<bool> {
f(); f();
*b = true; *b = true;
} }
let p = comm::Port(); let p = oldcomm::Port();
let c = comm::Chan(&p); let c = oldcomm::Chan(&p);
do task::spawn_unlinked { wrapper(c, copy f) }; do task::spawn_unlinked { wrapper(c, copy f) };
p p
} }
fn join(port: comm::Port<bool>) -> bool { fn join(port: oldcomm::Port<bool>) -> bool {
comm::recv(port) oldcomm::recv(port)
} }
fn main() { fn main() {
@ -76,15 +76,15 @@ fn main() {
let p1; let p1;
let p2; let p2;
p1 = comm::Port::<int>(); p1 = oldcomm::Port::<int>();
p2 = comm::Port::<int>(); p2 = oldcomm::Port::<int>();
assert (p1 == p1); assert (p1 == p1);
assert (p1 != p2); assert (p1 != p2);
// channels // channels
let c1 = comm::Chan(p1); let c1 = oldcomm::Chan(p1);
let c2 = comm::Chan(p2); let c2 = oldcomm::Chan(p2);
assert (c1 == c1); assert (c1 == c1);
assert (c1 != c2); assert (c1 != c2);

View file

@ -14,7 +14,7 @@
// the join. // the join.
struct notify { struct notify {
ch: comm::Chan<bool>, v: @mut bool, ch: oldcomm::Chan<bool>, v: @mut bool,
} }
impl notify : Drop { impl notify : Drop {
@ -25,19 +25,19 @@ impl notify : Drop {
task::failing(), task::failing(),
*(self.v)); *(self.v));
let b = *(self.v); let b = *(self.v);
comm::send(self.ch, b); oldcomm::send(self.ch, b);
} }
} }
fn notify(ch: comm::Chan<bool>, v: @mut bool) -> notify { fn notify(ch: oldcomm::Chan<bool>, v: @mut bool) -> notify {
notify { notify {
ch: ch, ch: ch,
v: v v: v
} }
} }
fn joinable(+f: fn~()) -> comm::Port<bool> { fn joinable(+f: fn~()) -> oldcomm::Port<bool> {
fn wrapper(+c: comm::Chan<bool>, +f: fn()) { fn wrapper(+c: oldcomm::Chan<bool>, +f: fn()) {
let b = @mut false; let b = @mut false;
error!("wrapper: task=%? allocated v=%x", error!("wrapper: task=%? allocated v=%x",
task::get_task(), task::get_task(),
@ -46,14 +46,14 @@ fn joinable(+f: fn~()) -> comm::Port<bool> {
f(); f();
*b = true; *b = true;
} }
let p = comm::Port(); let p = oldcomm::Port();
let c = comm::Chan(&p); let c = oldcomm::Chan(&p);
do task::spawn_unlinked { wrapper(c, f) }; do task::spawn_unlinked { wrapper(c, f) };
p p
} }
fn join(port: comm::Port<bool>) -> bool { fn join(port: oldcomm::Port<bool>) -> bool {
comm::recv(port) oldcomm::recv(port)
} }
fn supervised() { fn supervised() {

View file

@ -9,8 +9,8 @@
// except according to those terms. // except according to those terms.
fn main() { fn main() {
let p = comm::Port::<uint>(); let p = oldcomm::Port::<uint>();
let ch = comm::Chan(&p); let ch = oldcomm::Chan(&p);
let x = ~1; let x = ~1;
let x_in_parent = ptr::addr_of(&(*x)) as uint; let x_in_parent = ptr::addr_of(&(*x)) as uint;
@ -20,17 +20,17 @@ fn main() {
task::spawn(fn~(copy ch, copy y, move x) { task::spawn(fn~(copy ch, copy y, move x) {
let x_in_child = ptr::addr_of(&(*x)) as uint; let x_in_child = ptr::addr_of(&(*x)) as uint;
comm::send(ch, x_in_child); oldcomm::send(ch, x_in_child);
let y_in_child = ptr::addr_of(&(*y)) as uint; let y_in_child = ptr::addr_of(&(*y)) as uint;
comm::send(ch, y_in_child); oldcomm::send(ch, y_in_child);
}); });
// Ensure last-use analysis doesn't move y to child. // Ensure last-use analysis doesn't move y to child.
let _q = y; let _q = y;
let x_in_child = comm::recv(p); let x_in_child = oldcomm::recv(p);
assert x_in_parent == x_in_child; assert x_in_parent == x_in_child;
let y_in_child = comm::recv(p); let y_in_child = oldcomm::recv(p);
assert y_in_parent != y_in_child; assert y_in_parent != y_in_child;
} }

View file

@ -10,13 +10,13 @@
extern mod std; extern mod std;
fn child(c: comm::Chan<~uint>, i: uint) { fn child(c: oldcomm::Chan<~uint>, i: uint) {
comm::send(c, ~i); oldcomm::send(c, ~i);
} }
fn main() { fn main() {
let p = comm::Port(); let p = oldcomm::Port();
let ch = comm::Chan(&p); let ch = oldcomm::Chan(&p);
let n = 100u; let n = 100u;
let mut expected = 0u; let mut expected = 0u;
for uint::range(0u, n) |i| { for uint::range(0u, n) |i| {
@ -26,7 +26,7 @@ fn main() {
let mut actual = 0u; let mut actual = 0u;
for uint::range(0u, n) |_i| { for uint::range(0u, n) |_i| {
let j = comm::recv(p); let j = oldcomm::recv(p);
actual += *j; actual += *j;
} }

View file

@ -11,9 +11,9 @@
extern mod std; extern mod std;
fn main() { fn main() {
let p = comm::Port(); let p = oldcomm::Port();
let c = comm::Chan(&p); let c = oldcomm::Chan(&p);
comm::send(c, ~100); oldcomm::send(c, ~100);
let v = comm::recv(p); let v = oldcomm::recv(p);
assert v == ~100; assert v == ~100;
} }

View file

@ -12,33 +12,33 @@
extern mod std; extern mod std;
struct complainer { struct complainer {
c: comm::Chan<bool>, c: oldcomm::Chan<bool>,
} }
impl complainer : Drop { impl complainer : Drop {
fn finalize(&self) { fn finalize(&self) {
error!("About to send!"); error!("About to send!");
comm::send(self.c, true); oldcomm::send(self.c, true);
error!("Sent!"); error!("Sent!");
} }
} }
fn complainer(c: comm::Chan<bool>) -> complainer { fn complainer(c: oldcomm::Chan<bool>) -> complainer {
error!("Hello!"); error!("Hello!");
complainer { complainer {
c: c c: c
} }
} }
fn f(c: comm::Chan<bool>) { fn f(c: oldcomm::Chan<bool>) {
let _c = move complainer(c); let _c = move complainer(c);
fail; fail;
} }
fn main() { fn main() {
let p = comm::Port(); let p = oldcomm::Port();
let c = comm::Chan(&p); let c = oldcomm::Chan(&p);
task::spawn_unlinked(|| f(c) ); task::spawn_unlinked(|| f(c) );
error!("hiiiiiiiii"); error!("hiiiiiiiii");
assert comm::recv(p); assert oldcomm::recv(p);
} }

View file

@ -15,7 +15,7 @@ enum crew_of_enterprise_d {
#[captain] #[captain]
jean_luc_picard, jean_luc_picard,
#[commander] #[oldcommander]
william_t_riker, william_t_riker,
#[chief_medical_officer] #[chief_medical_officer]
@ -24,7 +24,7 @@ enum crew_of_enterprise_d {
#[ships_councellor] #[ships_councellor]
deanna_troi, deanna_troi,
#[lieutenant_commander] #[lieutenant_oldcommander]
data, data,
#[chief_of_security] #[chief_of_security]