diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-05-19 16:10:44 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-05-20 15:21:29 -0700 |
| commit | 2f99fb8efad8803801628a507fe3ac06a70c7871 (patch) | |
| tree | 4d758ebb7bc9915d7caf8f651df8350c6219686d | |
| parent | 06f1a64bd6e417b73f1b812b860271e86bb42b47 (diff) | |
| download | rust-2f99fb8efad8803801628a507fe3ac06a70c7871.tar.gz rust-2f99fb8efad8803801628a507fe3ac06a70c7871.zip | |
core::rt: Remove local_sched module
| -rw-r--r-- | src/libcore/rt/comm.rs | 1 | ||||
| -rw-r--r-- | src/libcore/rt/io/net/tcp.rs | 2 | ||||
| -rw-r--r-- | src/libcore/rt/local_sched.rs | 32 | ||||
| -rw-r--r-- | src/libcore/rt/mod.rs | 7 | ||||
| -rw-r--r-- | src/libcore/rt/sched.rs | 10 | ||||
| -rw-r--r-- | src/libcore/rt/task.rs | 2 | ||||
| -rw-r--r-- | src/libcore/rt/tube.rs | 2 | ||||
| -rw-r--r-- | src/libcore/rt/uv/uvio.rs | 17 |
8 files changed, 20 insertions, 53 deletions
diff --git a/src/libcore/rt/comm.rs b/src/libcore/rt/comm.rs index 544d9817558..576a402b709 100644 --- a/src/libcore/rt/comm.rs +++ b/src/libcore/rt/comm.rs @@ -22,7 +22,6 @@ use ops::Drop; use kinds::Owned; use rt::sched::{Scheduler, Coroutine}; use rt::local::Local; -use rt::local_sched; use unstable::intrinsics::{atomic_xchg, atomic_load}; use util::Void; use comm::{GenericChan, GenericSmartChan, GenericPort, Peekable}; diff --git a/src/libcore/rt/io/net/tcp.rs b/src/libcore/rt/io/net/tcp.rs index a5fd7a395de..d9003419981 100644 --- a/src/libcore/rt/io/net/tcp.rs +++ b/src/libcore/rt/io/net/tcp.rs @@ -10,7 +10,7 @@ use option::{Option, Some, None}; use result::{Ok, Err}; -use rt::sched::local_sched::unsafe_borrow_io; +use rt::sched::unsafe_borrow_io; use rt::io::net::ip::IpAddr; use rt::io::{Reader, Writer, Listener}; use rt::io::{io_error, read_error, EndOfFile}; diff --git a/src/libcore/rt/local_sched.rs b/src/libcore/rt/local_sched.rs deleted file mode 100644 index 48e3351c44f..00000000000 --- a/src/libcore/rt/local_sched.rs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2013 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. - -//! Access to the thread-local Scheduler - -use prelude::*; -use ptr::mut_null; -use libc::c_void; -use cast; -use cell::Cell; - -use rt::sched::Scheduler; -use rt::rtio::{EventLoop, IoFactoryObject}; -use unstable::finally::Finally; -use rt::local_ptr; -use tls = rt::thread_local_storage; -use rt::local::Local; - -#[cfg(test)] use rt::uv::uvio::UvEventLoop; - -pub unsafe fn unsafe_borrow_io() -> *mut IoFactoryObject { - let sched = Local::unsafe_borrow::<Scheduler>(); - let io: *mut IoFactoryObject = (*sched).event_loop.io().unwrap(); - return io; -} diff --git a/src/libcore/rt/mod.rs b/src/libcore/rt/mod.rs index c8532f6b94a..2fac1df01a4 100644 --- a/src/libcore/rt/mod.rs +++ b/src/libcore/rt/mod.rs @@ -67,9 +67,6 @@ pub mod task; /// The coroutine task scheduler, built on the `io` event loop. mod sched; -/// Thread-local access to the current Scheduler. -pub mod local_sched; - /// Synchronous I/O. #[path = "io/mod.rs"] pub mod io; @@ -189,7 +186,7 @@ pub fn context() -> RuntimeContext { use task::rt::rust_task; use self::local::Local; - use self::sched::{local_sched, Scheduler}; + use self::sched::Scheduler; // XXX: Hitting TLS twice to check if the scheduler exists // then to check for the task is not good for perf @@ -220,7 +217,7 @@ pub fn context() -> RuntimeContext { #[test] fn test_context() { use unstable::run_in_bare_thread; - use self::sched::{local_sched, Scheduler, Coroutine}; + use self::sched::{Scheduler, Coroutine}; use rt::uv::uvio::UvEventLoop; use cell::Cell; use rt::local::Local; diff --git a/src/libcore/rt/sched.rs b/src/libcore/rt/sched.rs index 0004ef29de0..20c24adaa0a 100644 --- a/src/libcore/rt/sched.rs +++ b/src/libcore/rt/sched.rs @@ -20,9 +20,7 @@ use super::context::Context; use super::task::Task; use rt::local_ptr; use rt::local::Local; - -// A more convenient name for external callers, e.g. `local_sched::take()` -pub mod local_sched; +use rt::rtio::IoFactoryObject; /// The Scheduler is responsible for coordinating execution of Coroutines /// on a single thread. When the scheduler is running it is owned by @@ -403,6 +401,12 @@ pub impl Coroutine { } } +pub unsafe fn unsafe_borrow_io() -> *mut IoFactoryObject { + let sched = Local::unsafe_borrow::<Scheduler>(); + let io: *mut IoFactoryObject = (*sched).event_loop.io().unwrap(); + return io; +} + #[cfg(test)] mod test { use int; diff --git a/src/libcore/rt/task.rs b/src/libcore/rt/task.rs index cfb5b965860..3f98ad74ef2 100644 --- a/src/libcore/rt/task.rs +++ b/src/libcore/rt/task.rs @@ -16,7 +16,7 @@ use prelude::*; use libc::{c_void, uintptr_t}; use cast::transmute; -use super::sched::{Scheduler, local_sched}; +use super::sched::Scheduler; use rt::local::Local; use super::local_heap::LocalHeap; use rt::logging::StdErrLogger; diff --git a/src/libcore/rt/tube.rs b/src/libcore/rt/tube.rs index 2e6dc64986e..b2f475a6966 100644 --- a/src/libcore/rt/tube.rs +++ b/src/libcore/rt/tube.rs @@ -18,7 +18,6 @@ use clone::Clone; use super::rc::RC; use rt::sched::{Scheduler, Coroutine}; use rt::{context, TaskContext, SchedulerContext}; -use rt::local_sched; use rt::local::Local; use vec::OwnedVector; use container::Container; @@ -95,7 +94,6 @@ impl<T> Clone for Tube<T> { mod test { use int; use cell::Cell; - use rt::local_sched; use rt::test::*; use rt::rtio::EventLoop; use rt::sched::Scheduler; diff --git a/src/libcore/rt/uv/uvio.rs b/src/libcore/rt/uv/uvio.rs index e83ab0dd808..b89dfcab3d3 100644 --- a/src/libcore/rt/uv/uvio.rs +++ b/src/libcore/rt/uv/uvio.rs @@ -19,7 +19,8 @@ use rt::io::net::ip::IpAddr; use rt::uv::*; use rt::uv::idle::IdleWatcher; use rt::rtio::*; -use rt::sched::{Scheduler, local_sched}; +use rt::sched::unsafe_borrow_io; +use rt::sched::Scheduler; use rt::io::{standard_error, OtherIoError}; use rt::tube::Tube; use rt::local::Local; @@ -358,7 +359,7 @@ impl RtioTcpStream for UvTcpStream { fn test_simple_io_no_connect() { do run_in_newsched_task { unsafe { - let io = local_sched::unsafe_borrow_io(); + let io = unsafe_borrow_io(); let addr = next_test_ip4(); let maybe_chan = (*io).tcp_connect(addr); assert!(maybe_chan.is_err()); @@ -374,7 +375,7 @@ fn test_simple_tcp_server_and_client() { // Start the server first so it's listening when we connect do spawntask_immediately { unsafe { - let io = local_sched::unsafe_borrow_io(); + let io = unsafe_borrow_io(); let mut listener = (*io).tcp_bind(addr).unwrap(); let mut stream = listener.accept().unwrap(); let mut buf = [0, .. 2048]; @@ -389,7 +390,7 @@ fn test_simple_tcp_server_and_client() { do spawntask_immediately { unsafe { - let io = local_sched::unsafe_borrow_io(); + let io = unsafe_borrow_io(); let mut stream = (*io).tcp_connect(addr).unwrap(); stream.write([0, 1, 2, 3, 4, 5, 6, 7]); } @@ -403,7 +404,7 @@ fn test_read_and_block() { let addr = next_test_ip4(); do spawntask_immediately { - let io = unsafe { local_sched::unsafe_borrow_io() }; + let io = unsafe { unsafe_borrow_io() }; let mut listener = unsafe { (*io).tcp_bind(addr).unwrap() }; let mut stream = listener.accept().unwrap(); let mut buf = [0, .. 2048]; @@ -439,7 +440,7 @@ fn test_read_and_block() { do spawntask_immediately { unsafe { - let io = local_sched::unsafe_borrow_io(); + let io = unsafe_borrow_io(); let mut stream = (*io).tcp_connect(addr).unwrap(); stream.write([0, 1, 2, 3, 4, 5, 6, 7]); stream.write([0, 1, 2, 3, 4, 5, 6, 7]); @@ -459,7 +460,7 @@ fn test_read_read_read() { do spawntask_immediately { unsafe { - let io = local_sched::unsafe_borrow_io(); + let io = unsafe_borrow_io(); let mut listener = (*io).tcp_bind(addr).unwrap(); let mut stream = listener.accept().unwrap(); let buf = [1, .. 2048]; @@ -473,7 +474,7 @@ fn test_read_read_read() { do spawntask_immediately { unsafe { - let io = local_sched::unsafe_borrow_io(); + let io = unsafe_borrow_io(); let mut stream = (*io).tcp_connect(addr).unwrap(); let mut buf = [0, .. 2048]; let mut total_bytes_read = 0; |
