Skip to content

Commit 4350ee3

Browse files
author
Eric Holk
committed
---
yaml --- r: 4671 b: refs/heads/master c: c3535f5 h: refs/heads/master i: 4669: 61b498c 4667: c414f1e 4663: 61fa4c6 4655: e7b4602 4639: 3410c52 4607: 90c3a45 v: v3
1 parent 9847008 commit 4350ee3

File tree

9 files changed

+87
-81
lines changed

9 files changed

+87
-81
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: cc353aa17aabb315584a4af6fb86da6b1e254e4d
2+
refs/heads/master: c3535f58427aed5aed891f302de728b0b809838c

trunk/src/test/run-pass/task-comm-3.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
// xfail for now, due to some problem with polymorphic types.
2-
// xfail-stage2
2+
33
use std;
44
import std::task;
5+
import std::task::task_id;
56
import std::comm;
6-
import std::comm::chan_t;
7+
import std::comm::_chan;
78
import std::comm::send;
89

910
fn main() { log "===== WITHOUT THREADS ====="; test00(); }
1011

11-
fn test00_start(ch: chan_t[int], message: int, count: int) {
12+
fn test00_start(ch: _chan[int], message: int, count: int) {
1213
log "Starting test00_start";
1314
let i: int = 0;
1415
while i < count {
1516
log "Sending Message";
16-
send(ch, message);
17+
send(ch, message+0);
1718
i = i + 1;
1819
}
1920
log "Ending test00_start";
@@ -26,34 +27,34 @@ fn test00() {
2627
log "Creating tasks";
2728

2829
let po = comm::mk_port();
29-
let ch = po.mk_chan2();
30+
let ch = po.mk_chan();
3031

3132
let i: int = 0;
3233

3334
// Create and spawn tasks...
34-
let tasks: [task] = ~[];
35+
let tasks = [];
3536
while i < number_of_tasks {
3637
tasks +=
37-
[spawn test00_start(ch.unsafe_ptr(), i, number_of_messages)];
38+
[task::_spawn(bind test00_start(ch, i, number_of_messages))];
3839
i = i + 1;
3940
}
4041

4142
// Read from spawned tasks...
42-
let sum: int = 0;
43-
for t: task in tasks {
43+
let sum = 0;
44+
for t: task_id in tasks {
4445
i = 0;
4546
while i < number_of_messages {
46-
let value: int;
47-
value = po.recv();
47+
let value = po.recv();
4848
sum += value;
4949
i = i + 1;
5050
}
5151
}
5252

5353
// Join spawned tasks...
54-
for t: task in tasks { task::join(t); }
54+
for t: task_id in tasks { task::join_id(t); }
5555

5656
log "Completed: Final number is: ";
57+
log_err sum;
5758
// assert (sum == (((number_of_tasks * (number_of_tasks - 1)) / 2) *
5859
// number_of_messages));
5960
assert (sum == 480);

trunk/src/test/run-pass/task-comm.rs

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
use std;
22

33
import std::task;
4+
import std::task::task_id;
5+
import std::comm;
6+
import std::comm::_chan;
7+
import std::comm::_port;
8+
import std::comm::send;
49

510
fn main() {
611
test00();
@@ -12,10 +17,10 @@ fn main() {
1217
test06();
1318
}
1419

15-
fn test00_start(ch: chan[int], message: int, count: int) {
20+
fn test00_start(ch: _chan[int], message: int, count: int) {
1621
log "Starting test00_start";
1722
let i: int = 0;
18-
while i < count { log "Sending Message"; ch <| message; i = i + 1; }
23+
while i < count { log "Sending Message"; send(ch, message+0); i = i + 1; }
1924
log "Ending test00_start";
2025
}
2126

@@ -24,53 +29,48 @@ fn test00() {
2429
let number_of_messages: int = 4;
2530
log "Creating tasks";
2631

27-
let po: port[int] = port();
28-
let ch: chan[int] = chan(po);
32+
let po = comm::mk_port();
33+
let ch = po.mk_chan();
2934

3035
let i: int = 0;
3136

32-
let tasks: [task] = ~[];
37+
let tasks = [];
3338
while i < number_of_tasks {
3439
i = i + 1;
35-
tasks += ~[spawn test00_start(ch, i, number_of_messages)];
40+
tasks += [task::_spawn(bind test00_start(ch, i, number_of_messages))];
3641
}
3742

3843
let sum: int = 0;
39-
for t: task in tasks {
44+
for t: task_id in tasks {
4045
i = 0;
4146
while i < number_of_messages {
42-
let value: int;
43-
po |> value;
44-
sum += value;
47+
sum += po.recv();
4548
i = i + 1;
4649
}
4750
}
4851

49-
for t: task in tasks { task::join(t); }
52+
for t: task_id in tasks { task::join_id(t); }
5053

5154
log "Completed: Final number is: ";
5255
assert (sum ==
53-
number_of_messages *
54-
(number_of_tasks * number_of_tasks + number_of_tasks) /
55-
2);
56+
number_of_messages *
57+
(number_of_tasks * number_of_tasks + number_of_tasks) / 2);
5658
}
5759

5860
fn test01() {
59-
let p: port[int] = port();
61+
let p = comm::mk_port();
6062
log "Reading from a port that is never written to.";
61-
let value: int;
62-
p |> value;
63+
let value: int = p.recv();
6364
log value;
6465
}
6566

6667
fn test02() {
67-
let p: port[int] = port();
68-
let c: chan[int] = chan(p);
68+
let p = comm::mk_port();
69+
let c = p.mk_chan();
6970
log "Writing to a local task channel.";
70-
c <| 42;
71+
send(c, 42);
7172
log "Reading from a local task port.";
72-
let value: int;
73-
p |> value;
73+
let value: int = p.recv();
7474
log value;
7575
}
7676

@@ -96,26 +96,26 @@ fn test04_start() {
9696
fn test04() {
9797
log "Spawning lots of tasks.";
9898
let i: int = 4;
99-
while i > 0 { i = i - 1; spawn test04_start(); }
99+
while i > 0 { i = i - 1; task::_spawn(bind test04_start()); }
100100
log "Finishing up.";
101101
}
102102

103-
fn test05_start(ch: chan[int]) {
104-
ch <| 10;
105-
ch <| 20;
106-
ch <| 30;
107-
ch <| 30;
108-
ch <| 30;
103+
fn test05_start(ch: _chan[int]) {
104+
send(ch, 10);
105+
send(ch, 20);
106+
send(ch, 30);
107+
send(ch, 30);
108+
send(ch, 30);
109109
}
110110

111111
fn test05() {
112-
let po: port[int] = port();
113-
let ch: chan[int] = chan(po);
114-
spawn test05_start(ch);
112+
let po = comm::mk_port();
113+
let ch = po.mk_chan();
114+
task::_spawn(bind test05_start(ch));
115115
let value: int;
116-
po |> value;
117-
po |> value;
118-
po |> value;
116+
value = po.recv();
117+
value = po.recv();
118+
value = po.recv();
119119
log value;
120120
}
121121

@@ -132,12 +132,12 @@ fn test06() {
132132

133133
let i: int = 0;
134134

135-
let tasks: [task] = ~[];
135+
let tasks = [];
136136
while i < number_of_tasks {
137-
i = i + 1; tasks += ~[spawn test06_start(i)]; }
137+
i = i + 1; tasks += [task::_spawn(bind test06_start(i))]; }
138138

139139

140-
for t: task in tasks { task::join(t); }
140+
for t: task_id in tasks { task::join_id(t); }
141141
}
142142

143143

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
// xfail-stage1
2-
// xfail-stage2
3-
// xfail-stage3
4-
51
/**
62
A test case for issue #577, which also exposes #588
73
*/
84

95
use std;
10-
import std::task::join;
6+
import std::task;
7+
import std::task::join_id;
8+
import std::comm;
119

1210
fn child() { }
1311

@@ -16,8 +14,8 @@ fn main() {
1614
let t1;
1715
let t2;
1816

19-
t1 = spawn child();
20-
t2 = spawn child();
17+
t1 = task::_spawn(bind child());
18+
t2 = task::_spawn(bind child());
2119

2220
assert (t1 == t1);
2321
assert (t1 != t2);
@@ -26,8 +24,8 @@ fn main() {
2624
let p1;
2725
let p2;
2826

29-
p1 = port[int]();
30-
p2 = port[int]();
27+
p1 = comm::mk_port[int]();
28+
p2 = comm::mk_port[int]();
3129

3230
assert (p1 == p1);
3331
assert (p1 != p2);
@@ -36,12 +34,12 @@ fn main() {
3634
let c1;
3735
let c2;
3836

39-
c1 = chan(p1);
40-
c2 = chan(p2);
37+
c1 = p1.mk_chan();
38+
c2 = p2.mk_chan();
4139

4240
assert (c1 == c1);
4341
assert (c1 != c2);
4442

45-
join(t1);
46-
join(t2);
43+
join_id(t1);
44+
join_id(t2);
4745
}

trunk/src/test/run-pass/task-killjoin.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ fn supervisor() {
2020
// Unsupervise this task so the process doesn't return a failure status as
2121
// a result of the main task being killed.
2222
task::unsupervise();
23-
let t = spawn supervised();
24-
task::join(t);
23+
let t = task::_spawn(bind supervised());
24+
task::join_id(t);
2525
}
2626

2727
fn main() {
28-
let dom2 = spawn supervisor();
29-
task::join(dom2);
28+
let dom2 = task::_spawn(bind supervisor());
29+
task::join_id(dom2);
3030
}
3131

3232
// Local Variables:
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
fn main() { spawn child("Hello"); }
1+
use std;
2+
import std::task;
3+
fn main() { task::_spawn(bind child("Hello")); }
24

35
fn child(s: str) {
46

5-
}
7+
}

trunk/src/test/run-pass/threads.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
// xfail-stage1
2-
// xfail-stage2
3-
// xfail-stage3
4-
51
// -*- rust -*-
62

3+
use std;
4+
import std::task;
5+
76
fn main() {
8-
let int i = 10;
7+
let i = 10;
98
while (i > 0) {
10-
spawn thread "child" child(i);
9+
task::_spawn(bind child(i));
1110
i = i - 1;
1211
}
1312
log "main thread exiting";
1413
}
1514

16-
fn child(int x) {
15+
fn child(x : int) {
1716
log x;
1817
}
1918

trunk/src/test/run-pass/yield.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
// -*- rust -*-
22
use std;
3+
import std::task;
34
import std::task::*;
45

56
fn main() {
6-
let other = spawn child();
7+
let other = task::_spawn(bind child());
78
log_err "1";
89
yield();
910
log_err "2";
1011
yield();
1112
log_err "3";
12-
join(other);
13+
join_id(other);
1314
}
1415

1516
fn child() { log_err "4"; yield(); log_err "5"; yield(); log_err "6"; }

trunk/src/test/run-pass/yield1.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
// -*- rust -*-
22
use std;
3+
import std::task;
34
import std::task::*;
45

5-
fn main() { let other = spawn child(); log_err "1"; yield(); join(other); }
6+
fn main() {
7+
let other = task::_spawn(bind child());
8+
log_err "1"; yield();
9+
join_id(other);
10+
}
611

7-
fn child() { log_err "2"; }
12+
fn child() { log_err "2"; }

0 commit comments

Comments
 (0)