Merge remote-tracking branch 'brson/io' into io-upstream

Conflicts:
	src/rt/rust_builtin.cpp
	src/rt/rustrt.def.in
This commit is contained in:
Brian Anderson
2013-06-20 12:17:00 -07:00
30 changed files with 3148 additions and 837 deletions

View File

@@ -92,6 +92,7 @@ use util;
use unstable::sync::{Exclusive, exclusive};
use rt::local::Local;
use iterator::{IteratorUtil};
use rt::task::Task;
#[cfg(test)] use task::default_task_opts;
#[cfg(test)] use comm;
@@ -580,9 +581,14 @@ pub fn spawn_raw(opts: TaskOpts, f: ~fn()) {
fn spawn_raw_newsched(_opts: TaskOpts, f: ~fn()) {
use rt::sched::*;
let task = do Local::borrow::<Task, ~Task>() |running_task| {
~running_task.new_child()
};
let mut sched = Local::take::<Scheduler>();
let task = ~Coroutine::new(&mut sched.stack_pool, f);
sched.schedule_new_task(task);
let task = ~Coroutine::with_task(&mut sched.stack_pool,
task, f);
sched.schedule_task(task);
}
fn spawn_raw_oldsched(mut opts: TaskOpts, f: ~fn()) {