std: Remove PlatformThread spawn mode. Obsolete

This commit is contained in:
Brian Anderson 2013-07-29 12:00:55 -07:00
parent 85fd75ac47
commit 5d2b8d4372
3 changed files with 2 additions and 66 deletions

View File

@ -96,13 +96,6 @@ pub enum SchedMode {
CurrentScheduler,
/// Run task on a specific scheduler
ExistingScheduler(Scheduler),
/**
* Tasks are scheduled on the main OS thread
*
* The main OS thread is the thread used to launch the runtime which,
* in most cases, is the process's initial thread as created by the OS.
*/
PlatformThread,
/// All tasks run in the same OS thread
SingleThreaded,
}
@ -1094,17 +1087,6 @@ fn test_avoid_copying_the_body_unlinked() {
}
}
#[test]
fn test_platform_thread() {
let (po, ch) = stream();
let mut builder = task();
builder.sched_mode(PlatformThread);
do builder.spawn {
ch.send(());
}
po.recv();
}
#[test]
#[ignore(cfg(windows))]
#[should_fail]

View File

@ -84,7 +84,7 @@ use local_data;
use task::local_data_priv::{local_get, local_set, OldHandle};
use task::rt::rust_task;
use task::rt;
use task::{Failure, PlatformThread, SchedOpts, SingleThreaded};
use task::{Failure, SchedOpts, SingleThreaded};
use task::{Success, TaskOpts, TaskResult};
use task::{ExistingScheduler, SchedulerHandle};
use task::unkillable;
@ -808,8 +808,7 @@ fn spawn_raw_oldsched(mut opts: TaskOpts, f: ~fn()) {
let num_threads = match opts.mode {
DefaultScheduler
| CurrentScheduler
| ExistingScheduler(*)
| PlatformThread => 0u, /* Won't be used */
| ExistingScheduler(*) => 0u, /* Won't be used */
SingleThreaded => 1u,
};
@ -817,7 +816,6 @@ fn spawn_raw_oldsched(mut opts: TaskOpts, f: ~fn()) {
let sched_id = match opts.mode {
CurrentScheduler => rt::rust_get_sched_id(),
ExistingScheduler(SchedulerHandle(id)) => id,
PlatformThread => rt::rust_osmain_sched_id(),
_ => rt::rust_new_sched(num_threads)
};
rt::rust_new_task_in_sched(sched_id)

View File

@ -1,44 +0,0 @@
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// Jump back and forth between the OS main thread and a new scheduler.
// The OS main scheduler should continue to be available and not terminate
// while it is not in use.
use std::task;
pub fn main() {
run(100);
}
fn run(i: int) {
info!(i);
if i == 0 {
return;
}
let mut builder = task::task();
builder.sched_mode(task::PlatformThread);
builder.unlinked();
do builder.spawn {
task::yield();
let mut builder = task::task();
builder.sched_mode(task::SingleThreaded);
builder.unlinked();
do builder.spawn {
task::yield();
run(i - 1);
task::yield();
}
task::yield();
}
}