*
* * sched_mode - The operating mode of the scheduler
*
- * * foreign_stack_size - The size of the foreign stack, in bytes
- *
- * Rust code runs on Rust-specific stacks. When Rust code calls foreign
- * code (via functions in foreign modules) it switches to a typical, large
- * stack appropriate for running code written in languages like C. By
- * default these foreign stacks have unspecified size, but with this
- * option their size can be precisely specified.
*/
pub struct SchedOpts {
mode: SchedMode,
- foreign_stack_size: Option<uint>,
}
/**
notify_chan: None,
sched: SchedOpts {
mode: DefaultScheduler,
- foreign_stack_size: None
}
}
}
use task::local_data_priv::{local_get, local_set, OldHandle};
use task::rt::rust_task;
use task::rt;
-use task::{Failure, SchedOpts};
+use task::{Failure};
use task::{Success, TaskOpts, TaskResult};
use task::unkillable;
use to_bytes::IterBytes;
// Create child task.
let new_task = match opts.sched.mode {
DefaultScheduler => rt::new_task(),
- _ => new_task_in_sched(opts.sched)
+ _ => new_task_in_sched()
};
assert!(!new_task.is_null());
// Getting killed after here would leak the task.
return result;
}
- fn new_task_in_sched(opts: SchedOpts) -> *rust_task {
- if opts.foreign_stack_size != None {
- fail!("foreign_stack_size scheduler option unimplemented");
- }
-
+ fn new_task_in_sched() -> *rust_task {
unsafe {
let sched_id = rt::rust_new_sched(1);
rt::rust_new_task_in_sched(sched_id)