Skip to content

Move task::task() to TaskBuilder::new() #13675

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 24, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/librustc/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ use std::cmp;
use std::io;
use std::os;
use std::str;
use std::task;
use std::task::TaskBuilder;
use syntax::ast;
use syntax::diagnostic::Emitter;
use syntax::diagnostic;
Expand Down Expand Up @@ -374,7 +374,7 @@ pub fn monitor(f: proc():Send) {
#[cfg(not(rtopt))]
static STACK_SIZE: uint = 20000000; // 20MB

let mut task_builder = task::task().named("rustc");
let mut task_builder = TaskBuilder::new().named("rustc");

// FIXME: Hacks on hacks. If the env is trying to override the stack size
// then *don't* set it explicitly.
Expand Down
61 changes: 27 additions & 34 deletions src/libstd/task.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,19 +91,17 @@ pub struct TaskBuilder {
nocopy: Option<marker::NoCopy>,
}

/**
* Generate the base configuration for spawning a task, off of which more
* configuration methods can be chained.
*/
pub fn task() -> TaskBuilder {
TaskBuilder {
opts: TaskOpts::new(),
gen_body: None,
nocopy: None,
impl TaskBuilder {
/// Generate the base configuration for spawning a task, off of which more
/// configuration methods can be chained.
pub fn new() -> TaskBuilder {
TaskBuilder {
opts: TaskOpts::new(),
gen_body: None,
nocopy: None,
}
}
}

impl TaskBuilder {
/// Get a future representing the exit status of the task.
///
/// Taking the value of the future will block until the child task
Expand Down Expand Up @@ -233,22 +231,17 @@ impl TaskOpts {
/// Sets up a new task with its own call stack and schedules it to run
/// the provided unique closure.
///
/// This function is equivalent to `task().spawn(f)`.
/// This function is equivalent to `TaskBuilder::new().spawn(f)`.
pub fn spawn(f: proc():Send) {
let task = task();
task.spawn(f)
TaskBuilder::new().spawn(f)
}

/// Execute a function in another task and return either the return value of
/// the function or an error if the task failed
///
/// This is equivalent to TaskBuilder::new().try
pub fn try<T:Send>(f: proc():Send -> T) -> Result<T, ~Any:Send> {
/*!
* Execute a function in another task and return either the return value
* of the function or result::err.
*
* This is equivalent to task().try.
*/

let task = task();
task.try(f)
TaskBuilder::new().try(f)
}


Expand Down Expand Up @@ -298,7 +291,7 @@ fn test_unnamed_task() {

#[test]
fn test_owned_named_task() {
task().named("ada lovelace".to_owned()).spawn(proc() {
TaskBuilder::new().named("ada lovelace".to_owned()).spawn(proc() {
with_task_name(|name| {
assert!(name.unwrap() == "ada lovelace");
})
Expand All @@ -307,7 +300,7 @@ fn test_owned_named_task() {

#[test]
fn test_static_named_task() {
task().named("ada lovelace").spawn(proc() {
TaskBuilder::new().named("ada lovelace").spawn(proc() {
with_task_name(|name| {
assert!(name.unwrap() == "ada lovelace");
})
Expand All @@ -316,7 +309,7 @@ fn test_static_named_task() {

#[test]
fn test_send_named_task() {
task().named("ada lovelace".into_maybe_owned()).spawn(proc() {
TaskBuilder::new().named("ada lovelace".into_maybe_owned()).spawn(proc() {
with_task_name(|name| {
assert!(name.unwrap() == "ada lovelace");
})
Expand All @@ -326,7 +319,7 @@ fn test_send_named_task() {
#[test]
fn test_run_basic() {
let (tx, rx) = channel();
task().spawn(proc() {
TaskBuilder::new().spawn(proc() {
tx.send(());
});
rx.recv();
Expand All @@ -335,7 +328,7 @@ fn test_run_basic() {
#[test]
fn test_with_wrapper() {
let (tx, rx) = channel();
task().with_wrapper(proc(body) {
TaskBuilder::new().with_wrapper(proc(body) {
let result: proc():Send = proc() {
body();
tx.send(());
Expand All @@ -347,12 +340,12 @@ fn test_with_wrapper() {

#[test]
fn test_future_result() {
let mut builder = task();
let mut builder = TaskBuilder::new();
let result = builder.future_result();
builder.spawn(proc() {});
assert!(result.recv().is_ok());

let mut builder = task();
let mut builder = TaskBuilder::new();
let result = builder.future_result();
builder.spawn(proc() {
fail!();
Expand All @@ -362,7 +355,7 @@ fn test_future_result() {

#[test] #[should_fail]
fn test_back_to_the_future_result() {
let mut builder = task();
let mut builder = TaskBuilder::new();
builder.future_result();
builder.future_result();
}
Expand Down Expand Up @@ -445,7 +438,7 @@ fn test_avoid_copying_the_body_spawn() {
#[test]
fn test_avoid_copying_the_body_task_spawn() {
avoid_copying_the_body(|f| {
let builder = task();
let builder = TaskBuilder::new();
builder.spawn(proc() {
f();
});
Expand All @@ -471,11 +464,11 @@ fn test_child_doesnt_ref_parent() {
fn child_no(x: uint) -> proc():Send {
return proc() {
if x < generations {
task().spawn(child_no(x+1));
TaskBuilder::new().spawn(child_no(x+1));
}
}
}
task().spawn(child_no(0));
TaskBuilder::new().spawn(child_no(0));
}

#[test]
Expand Down
3 changes: 2 additions & 1 deletion src/libsync/lock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,7 @@ impl Barrier {
mod tests {
use std::comm::Empty;
use std::task;
use std::task::TaskBuilder;

use arc::Arc;
use super::{Mutex, Barrier, RWLock};
Expand Down Expand Up @@ -614,7 +615,7 @@ mod tests {
let mut children = Vec::new();
for _ in range(0, 5) {
let arc3 = arc.clone();
let mut builder = task::task();
let mut builder = TaskBuilder::new();
children.push(builder.future_result());
builder.spawn(proc() {
let lock = arc3.read();
Expand Down
4 changes: 2 additions & 2 deletions src/libtest/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ use std::io;
use std::os;
use std::str;
use std::strbuf::StrBuf;
use std::task;
use std::task::TaskBuilder;

// to be used by rustc to compile tests in libtest
pub mod test {
Expand Down Expand Up @@ -961,7 +961,7 @@ pub fn run_test(force_ignore: bool,
let mut reader = ChanReader::new(rx);
let stdout = ChanWriter::new(tx.clone());
let stderr = ChanWriter::new(tx);
let mut task = task::task().named(match desc.name {
let mut task = TaskBuilder::new().named(match desc.name {
DynTestName(ref name) => name.clone().into_maybe_owned(),
StaticTestName(name) => name.into_maybe_owned(),
});
Expand Down
3 changes: 2 additions & 1 deletion src/test/bench/msgsend-pipes-shared.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ extern crate time;
use std::comm;
use std::os;
use std::task;
use std::task::TaskBuilder;
use std::uint;

fn move_out<T>(_x: T) {}
Expand Down Expand Up @@ -62,7 +63,7 @@ fn run(args: &[~str]) {
let mut worker_results = Vec::new();
for _ in range(0u, workers) {
let to_child = to_child.clone();
let mut builder = task::task();
let mut builder = TaskBuilder::new();
worker_results.push(builder.future_result());
builder.spawn(proc() {
for _ in range(0u, size / workers) {
Expand Down
5 changes: 3 additions & 2 deletions src/test/bench/msgsend-pipes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ extern crate time;

use std::os;
use std::task;
use std::task::TaskBuilder;
use std::uint;

fn move_out<T>(_x: T) {}
Expand Down Expand Up @@ -56,7 +57,7 @@ fn run(args: &[~str]) {
let mut worker_results = Vec::new();
let from_parent = if workers == 1 {
let (to_child, from_parent) = channel();
let mut builder = task::task();
let mut builder = TaskBuilder::new();
worker_results.push(builder.future_result());
builder.spawn(proc() {
for _ in range(0u, size / workers) {
Expand All @@ -70,7 +71,7 @@ fn run(args: &[~str]) {
let (to_child, from_parent) = channel();
for _ in range(0u, workers) {
let to_child = to_child.clone();
let mut builder = task::task();
let mut builder = TaskBuilder::new();
worker_results.push(builder.future_result());
builder.spawn(proc() {
for _ in range(0u, size / workers) {
Expand Down
3 changes: 2 additions & 1 deletion src/test/bench/shootout-pfib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ extern crate time;
use std::os;
use std::result::{Ok, Err};
use std::task;
use std::task::TaskBuilder;
use std::uint;

fn fib(n: int) -> int {
Expand Down Expand Up @@ -77,7 +78,7 @@ fn stress_task(id: int) {
fn stress(num_tasks: int) {
let mut results = Vec::new();
for i in range(0, num_tasks) {
let mut builder = task::task();
let mut builder = TaskBuilder::new();
results.push(builder.future_result());
builder.spawn(proc() {
stress_task(i);
Expand Down
4 changes: 2 additions & 2 deletions src/test/run-fail/fail-task-name-owned.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@

// error-pattern:task 'owned name' failed at 'test'

use std::task;
use std::task::TaskBuilder;

fn main() {
task::task().named("owned name".to_owned()).try(proc() {
TaskBuilder::new().named("owned name".to_owned()).try(proc() {
fail!("test");
1
}).unwrap()
Expand Down
2 changes: 1 addition & 1 deletion src/test/run-fail/fail-task-name-send-str.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// error-pattern:task 'send name' failed at 'test'

fn main() {
::std::task::task().named("send name".into_maybe_owned()).try(proc() {
::std::task::TaskBuilder::new().named("send name".into_maybe_owned()).try(proc() {
fail!("test");
3
}).unwrap()
Expand Down
2 changes: 1 addition & 1 deletion src/test/run-fail/fail-task-name-static.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// error-pattern:task 'static name' failed at 'test'

fn main() {
::std::task::task().named("static name").try(proc() {
::std::task::TaskBuilder::new().named("static name").try(proc() {
fail!("test");
}).unwrap()
}
4 changes: 2 additions & 2 deletions src/test/run-pass/issue-2190-1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

use std::task;
use std::task::TaskBuilder;

static generations: uint = 1024+256+128+49;

fn spawn(f: proc():Send) {
let mut t = task::task();
let mut t = TaskBuilder::new();
t.opts.stack_size = Some(32 * 1024);
t.spawn(f);
}
Expand Down
4 changes: 2 additions & 2 deletions src/test/run-pass/spawning-with-debug.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@

// regression test for issue #10405, make sure we don't call println! too soon.

use std::task;
use std::task::TaskBuilder;

pub fn main() {
let mut t = task::task();
let mut t = TaskBuilder::new();
t.spawn(proc() ());
}
3 changes: 2 additions & 1 deletion src/test/run-pass/task-comm-12.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@
// except according to those terms.

use std::task;
use std::task::TaskBuilder;

pub fn main() { test00(); }

fn start(_task_number: int) { println!("Started / Finished task."); }

fn test00() {
let i: int = 0;
let mut builder = task::task();
let mut builder = TaskBuilder::new();
let mut result = builder.future_result();
builder.spawn(proc() {
start(i)
Expand Down
4 changes: 2 additions & 2 deletions src/test/run-pass/task-comm-3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
// except according to those terms.


use std::task;
use std::task::TaskBuilder;

pub fn main() { println!("===== WITHOUT THREADS ====="); test00(); }

Expand Down Expand Up @@ -38,7 +38,7 @@ fn test00() {
let mut results = Vec::new();
while i < number_of_tasks {
let tx = tx.clone();
let mut builder = task::task();
let mut builder = TaskBuilder::new();
results.push(builder.future_result());
builder.spawn({
let i = i;
Expand Down
4 changes: 2 additions & 2 deletions src/test/run-pass/task-comm-9.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
// except according to those terms.


use std::task;
use std::task::TaskBuilder;

pub fn main() { test00(); }

Expand All @@ -24,7 +24,7 @@ fn test00() {
let (tx, rx) = channel();
let number_of_messages: int = 10;

let mut builder = task::task();
let mut builder = TaskBuilder::new();
let result = builder.future_result();
builder.spawn(proc() {
test00_start(&tx, number_of_messages);
Expand Down
4 changes: 2 additions & 2 deletions src/test/run-pass/tcp-stress.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ extern crate rustuv;
use std::io::net::ip::{Ipv4Addr, SocketAddr};
use std::io::net::tcp::{TcpListener, TcpStream};
use std::io::{Acceptor, Listener};
use std::task;
use std::task::TaskBuilder;

#[start]
fn start(argc: int, argv: **u8) -> int {
Expand Down Expand Up @@ -61,7 +61,7 @@ fn main() {
let (tx, rx) = channel();
for _ in range(0, 1000) {
let tx = tx.clone();
let mut builder = task::task();
let mut builder = TaskBuilder::new();
builder.opts.stack_size = Some(32 * 1024);
builder.spawn(proc() {
match TcpStream::connect(addr) {
Expand Down
Loading