Skip to content

Commit 0b81923

Browse files
committed
---
yaml --- r: 11306 b: refs/heads/master c: 9f95ccb h: refs/heads/master v: v3
1 parent 7ade00f commit 0b81923

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 450c4f3fa84f1cc1fe85e2f74402e00a7557433b
2+
refs/heads/master: 9f95ccb4269f2bb795c56d0fa7692cb7705c608e
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// This creates a bunch of yielding tasks that run concurrently
2+
// while holding onto C stacks
3+
4+
native mod rustrt {
5+
fn rust_dbg_call(cb: *u8,
6+
data: ctypes::uintptr_t) -> ctypes::uintptr_t;
7+
}
8+
9+
crust fn cb(data: ctypes::uintptr_t) -> ctypes::uintptr_t {
10+
if data == 1u {
11+
data
12+
} else {
13+
task::yield();
14+
count(data - 1u) + count(data - 1u)
15+
}
16+
}
17+
18+
fn count(n: uint) -> uint {
19+
rustrt::rust_dbg_call(cb, n)
20+
}
21+
22+
fn main() {
23+
iter::repeat(100u) {||
24+
task::spawn {||
25+
count(5u);
26+
};
27+
}
28+
}

0 commit comments

Comments
 (0)