rust/src/test/run-pass/task-comm-2.rs

39 lines
781 B
Rust
Raw Normal View History

// xfail-stage0
// xfail-stage1
// xfail-stage2
2010-07-28 18:58:17 -05:00
fn main() -> () {
2010-08-09 08:53:37 -05:00
log "===== SPAWNING and JOINING TASKS =====";
test00(false);
log "===== SPAWNING and JOINING THREAD TASKS =====";
2010-07-28 18:58:17 -05:00
test00(true);
}
fn start(int task_number) {
log "Started task.";
let int i = 0;
while (i < 10000) {
i = i + 1;
}
log "Finished task.";
}
fn test00(bool create_threads) {
2010-08-09 08:53:37 -05:00
let int number_of_tasks = 8;
let int i = 0;
let vec[task] tasks = [];
while (i < number_of_tasks) {
i = i + 1;
if (create_threads) {
tasks += [spawn thread start(i)];
} else {
tasks += [spawn start(i)];
}
}
for (task t in tasks) {
join t;
}
2010-07-28 18:58:17 -05:00
log "Joined all task.";
}