39 lines
781 B
Rust
39 lines
781 B
Rust
// xfail-stage0
|
|
// xfail-stage1
|
|
// xfail-stage2
|
|
fn main() -> () {
|
|
log "===== SPAWNING and JOINING TASKS =====";
|
|
test00(false);
|
|
log "===== SPAWNING and JOINING THREAD TASKS =====";
|
|
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) {
|
|
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;
|
|
}
|
|
|
|
log "Joined all task.";
|
|
} |