Skip to content

Commit 67ac08a

Browse files
committed
---
yaml --- r: 5343 b: refs/heads/master c: 4028a09 h: refs/heads/master i: 5341: 7df7c4b 5339: d5098c2 5335: dd14c64 5327: 24d73ea 5311: e5e921d v: v3
1 parent c3e627e commit 67ac08a

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

[refs]

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 172df2e3a224f58eb0fe162436fa1aa8d87e224b
2+
refs/heads/master: 4028a099f525c5368aa385283a2e88073ba2b3ea

trunk/src/rt/rust_builtin.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,7 @@ chan_id_send(rust_task *task, type_desc *t, rust_task_id target_task_id,
551551
port->remote_chan->send(sptr);
552552
}
553553
target_task->deref();
554+
task->yield();
554555
}
555556
}
556557

trunk/src/test/run-pass/send-iloop.rs

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// FIXME #937
2+
// xfail-fast
3+
use std;
4+
import std::task;
5+
import std::comm;
6+
import std::uint;
7+
8+
fn die() {
9+
fail;
10+
}
11+
12+
fn iloop() {
13+
task::unsupervise();
14+
let f = die;
15+
task::spawn(f);
16+
let p = comm::port::<()>();
17+
let c = comm::chan(p);
18+
while true {
19+
comm::send(c, ());
20+
}
21+
}
22+
23+
fn main() {
24+
for each i in uint::range(0u, 16u) {
25+
let f = iloop;
26+
task::spawn(f);
27+
}
28+
}

0 commit comments

Comments
 (0)