diff options
| author | Eric Holk <eric.holk@gmail.com> | 2012-08-01 15:28:28 -0700 |
|---|---|---|
| committer | Eric Holk <eric.holk@gmail.com> | 2012-08-02 18:55:44 -0700 |
| commit | f76a46242b6a34ac09643ddf4050be9d1ad11573 (patch) | |
| tree | 983a2e176b7b306d902932e2f9a7e0fe1d456d0d | |
| parent | 1d04b0ed5ac829594a412298cb9f9455d1a4d843 (diff) | |
| download | rust-f76a46242b6a34ac09643ddf4050be9d1ad11573.tar.gz rust-f76a46242b6a34ac09643ddf4050be9d1ad11573.zip | |
Convert pfib to pipes. This is a useful stress test.
| -rw-r--r-- | src/test/bench/shootout-pfib.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/test/bench/shootout-pfib.rs b/src/test/bench/shootout-pfib.rs index 2d2f9377820..5b309659ee5 100644 --- a/src/test/bench/shootout-pfib.rs +++ b/src/test/bench/shootout-pfib.rs @@ -15,10 +15,10 @@ use std; import std::{time, getopts}; import io::writer_util; import int::range; -import comm::port; -import comm::chan; -import comm::send; -import comm::recv; +import pipes::port; +import pipes::chan; +import pipes::send; +import pipes::recv; import core::result; import result::{ok, err}; @@ -26,22 +26,22 @@ import result::{ok, err}; fn fib(n: int) -> int { fn pfib(c: chan<int>, n: int) { if n == 0 { - send(c, 0); + c.send(0); } else if n <= 2 { - send(c, 1); + c.send(1); } else { - let p = port(); - let ch = chan(p); + let p = pipes::port_set(); + let ch = p.chan(); task::spawn(|| pfib(ch, n - 1) ); + let ch = p.chan(); task::spawn(|| pfib(ch, n - 2) ); - send(c, recv(p) + recv(p)); + c.send(p.recv() + p.recv()); } } - let p = port(); - let ch = chan(p); + let (ch, p) = pipes::stream(); let t = task::spawn(|| pfib(ch, n) ); - return recv(p); + p.recv() } type config = {stress: bool}; |
