auto merge of #9926 : Kimundi/rust/future_result_bad_sig, r=huonw
This commit is contained in:
commit
3f240fedec
15 changed files with 47 additions and 88 deletions
|
|
@ -67,7 +67,7 @@ fn run(args: &[~str]) {
|
|||
for _ in range(0u, workers) {
|
||||
let to_child = to_child.clone();
|
||||
let mut builder = task::task();
|
||||
builder.future_result(|r| worker_results.push(r));
|
||||
worker_results.push(builder.future_result());
|
||||
do builder.spawn {
|
||||
for _ in range(0u, size / workers) {
|
||||
//error2!("worker {:?}: sending {:?} bytes", i, num_bytes);
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ fn run(args: &[~str]) {
|
|||
for _ in range(0u, workers) {
|
||||
let to_child = to_child.clone();
|
||||
let mut builder = task::task();
|
||||
builder.future_result(|r| worker_results.push(r));
|
||||
worker_results.push(builder.future_result());
|
||||
do builder.spawn {
|
||||
for _ in range(0u, size / workers) {
|
||||
//error2!("worker {:?}: sending {:?} bytes", i, num_bytes);
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ fn stress(num_tasks: int) {
|
|||
let mut results = ~[];
|
||||
for i in range(0, num_tasks) {
|
||||
let mut builder = task::task();
|
||||
builder.future_result(|r| results.push(r));
|
||||
results.push(builder.future_result());
|
||||
do builder.spawn {
|
||||
stress_task(i);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,13 +54,12 @@ fn grandchild_group(num_tasks: uint) {
|
|||
}
|
||||
|
||||
fn spawn_supervised_blocking(myname: &str, f: ~fn()) {
|
||||
let mut res = None;
|
||||
let mut builder = task::task();
|
||||
builder.future_result(|r| res = Some(r));
|
||||
let res = builder.future_result();
|
||||
builder.supervised();
|
||||
builder.spawn(f);
|
||||
error2!("{} group waiting", myname);
|
||||
let x = res.unwrap().recv();
|
||||
let x = res.recv();
|
||||
assert_eq!(x, task::Success);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,9 +18,8 @@ fn start(_task_number: int) { info2!("Started / Finished task."); }
|
|||
|
||||
fn test00() {
|
||||
let i: int = 0;
|
||||
let mut result = None;
|
||||
let mut builder = task::task();
|
||||
builder.future_result(|r| result = Some(r));
|
||||
let result = builder.future_result();
|
||||
do builder.spawn {
|
||||
start(i)
|
||||
}
|
||||
|
|
@ -33,7 +32,7 @@ fn test00() {
|
|||
}
|
||||
|
||||
// Try joining tasks that have already finished.
|
||||
result.unwrap().recv();
|
||||
result.recv();
|
||||
|
||||
info2!("Joined task.");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ fn test00() {
|
|||
while i < number_of_tasks {
|
||||
let ch = ch.clone();
|
||||
let mut builder = task::task();
|
||||
builder.future_result(|r| results.push(r));
|
||||
results.push(builder.future_result());
|
||||
builder.spawn({
|
||||
let i = i;
|
||||
|| test00_start(&ch, i, number_of_messages)
|
||||
|
|
|
|||
|
|
@ -28,9 +28,8 @@ fn test00() {
|
|||
let (p, ch) = comm::stream();
|
||||
let number_of_messages: int = 10;
|
||||
|
||||
let mut result = None;
|
||||
let mut builder = task::task();
|
||||
builder.future_result(|r| result = Some(r));
|
||||
let result = builder.future_result();
|
||||
do builder.spawn {
|
||||
test00_start(&ch, number_of_messages);
|
||||
}
|
||||
|
|
@ -42,7 +41,7 @@ fn test00() {
|
|||
i += 1;
|
||||
}
|
||||
|
||||
result.unwrap().recv();
|
||||
result.recv();
|
||||
|
||||
assert_eq!(sum, number_of_messages * (number_of_messages - 1) / 2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,16 +12,15 @@
|
|||
use std::task;
|
||||
|
||||
pub fn main() {
|
||||
let mut result = None;
|
||||
let mut builder = task::task();
|
||||
builder.future_result(|r| { result = Some(r); });
|
||||
let result = builder.future_result();
|
||||
builder.spawn(child);
|
||||
error2!("1");
|
||||
task::deschedule();
|
||||
error2!("2");
|
||||
task::deschedule();
|
||||
error2!("3");
|
||||
result.unwrap().recv();
|
||||
result.recv();
|
||||
}
|
||||
|
||||
fn child() {
|
||||
|
|
|
|||
|
|
@ -12,13 +12,12 @@
|
|||
use std::task;
|
||||
|
||||
pub fn main() {
|
||||
let mut result = None;
|
||||
let mut builder = task::task();
|
||||
builder.future_result(|r| { result = Some(r); });
|
||||
let result = builder.future_result();
|
||||
builder.spawn(child);
|
||||
error2!("1");
|
||||
task::deschedule();
|
||||
result.unwrap().recv();
|
||||
result.recv();
|
||||
}
|
||||
|
||||
fn child() { error2!("2"); }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue