提交 a5cd502e 编写于 作者: B bors

auto merge of #13630 : alexcrichton/rust/correct-green-bounds, r=brson

These were mistakenly not updated as part of the removal of the Send bound by
default on procedures.

cc #13629
......@@ -243,7 +243,7 @@ fn pool() -> SchedPool {
})
}
fn run(f: proc()) {
fn run(f: proc():Send) {
let mut pool = pool();
pool.spawn(TaskOpts::new(), f);
pool.shutdown();
......
......@@ -46,7 +46,7 @@ pub fn empty() -> Context {
/// FIXME: this is basically an awful the interface. The main reason for
/// this is to reduce the number of allocations made when a green
/// task is spawned as much as possible
pub fn new(init: InitFn, arg: uint, start: proc(),
pub fn new(init: InitFn, arg: uint, start: proc():Send,
stack: &mut Stack) -> Context {
let sp: *uint = stack.end();
......
......@@ -289,7 +289,7 @@ fn start(argc: int, argv: **u8) -> int {
/// error.
pub fn start(argc: int, argv: **u8,
event_loop_factory: fn() -> ~rtio::EventLoop:Send,
main: proc()) -> int {
main: proc():Send) -> int {
rt::init(argc, argv);
let mut main = Some(main);
let mut ret = None;
......@@ -310,7 +310,7 @@ pub fn start(argc: int, argv: **u8,
/// This function will not return until all schedulers in the associated pool
/// have returned.
pub fn run(event_loop_factory: fn() -> ~rtio::EventLoop:Send,
main: proc()) -> int {
main: proc():Send) -> int {
// Create a scheduler pool and spawn the main task into this pool. We will
// get notified over a channel when the main task exits.
let mut cfg = PoolConfig::new();
......@@ -445,7 +445,7 @@ pub fn new(config: PoolConfig) -> SchedPool {
/// This is useful to create a task which can then be sent to a specific
/// scheduler created by `spawn_sched` (and possibly pin it to that
/// scheduler).
pub fn task(&mut self, opts: TaskOpts, f: proc()) -> ~GreenTask {
pub fn task(&mut self, opts: TaskOpts, f: proc():Send) -> ~GreenTask {
GreenTask::configure(&mut self.stack_pool, opts, f)
}
......@@ -455,7 +455,7 @@ pub fn task(&mut self, opts: TaskOpts, f: proc()) -> ~GreenTask {
/// New tasks are spawned in a round-robin fashion to the schedulers in this
/// pool, but tasks can certainly migrate among schedulers once they're in
/// the pool.
pub fn spawn(&mut self, opts: TaskOpts, f: proc()) {
pub fn spawn(&mut self, opts: TaskOpts, f: proc():Send) {
let task = self.task(opts, f);
// Figure out someone to send this task to
......
......@@ -1027,7 +1027,7 @@ fn pool() -> SchedPool {
})
}
fn run(f: proc()) {
fn run(f: proc():Send) {
let mut pool = pool();
pool.spawn(TaskOpts::new(), f);
pool.shutdown();
......
......@@ -72,7 +72,7 @@ fn reawaken(mut ~self, mut to_wake: ~Task) {
// feet and running.
fn yield_now(~self, _cur_task: ~Task) { fail!() }
fn maybe_yield(~self, _cur_task: ~Task) { fail!() }
fn spawn_sibling(~self, _cur_task: ~Task, _opts: TaskOpts, _f: proc()) {
fn spawn_sibling(~self, _cur_task: ~Task, _opts: TaskOpts, _f: proc():Send) {
fail!()
}
fn local_io<'a>(&'a mut self) -> Option<rtio::LocalIo<'a>> { None }
......
......@@ -129,7 +129,7 @@ impl GreenTask {
/// and will not have any contained Task structure.
pub fn new(stack_pool: &mut StackPool,
stack_size: Option<uint>,
start: proc()) -> ~GreenTask {
start: proc():Send) -> ~GreenTask {
GreenTask::new_homed(stack_pool, stack_size, AnySched, start)
}
......@@ -137,7 +137,7 @@ pub fn new(stack_pool: &mut StackPool,
pub fn new_homed(stack_pool: &mut StackPool,
stack_size: Option<uint>,
home: Home,
start: proc()) -> ~GreenTask {
start: proc():Send) -> ~GreenTask {
// Allocate ourselves a GreenTask structure
let mut ops = GreenTask::new_typed(None, TypeGreen(Some(home)));
......@@ -175,7 +175,7 @@ pub fn new_typed(coroutine: Option<Coroutine>,
/// new stack for this task.
pub fn configure(pool: &mut StackPool,
opts: TaskOpts,
f: proc()) -> ~GreenTask {
f: proc():Send) -> ~GreenTask {
let TaskOpts {
notify_chan, name, stack_size,
stderr, stdout,
......@@ -443,7 +443,7 @@ fn reawaken(mut ~self, to_wake: ~Task) {
}
}
fn spawn_sibling(mut ~self, cur_task: ~Task, opts: TaskOpts, f: proc()) {
fn spawn_sibling(mut ~self, cur_task: ~Task, opts: TaskOpts, f: proc():Send) {
self.put_task(cur_task);
// Spawns a task into the current scheduler. We allocate the new task's
......@@ -490,7 +490,7 @@ mod tests {
use super::super::{PoolConfig, SchedPool};
use super::GreenTask;
fn spawn_opts(opts: TaskOpts, f: proc()) {
fn spawn_opts(opts: TaskOpts, f: proc():Send) {
let mut pool = SchedPool::new(PoolConfig {
threads: 1,
event_loop_factory: ::rustuv::event_loop,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册