Move core::task::local_data to core::local_data
This commit is contained in:
parent
ad8e236f32
commit
c8e93edf55
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
use prelude::*;
|
use prelude::*;
|
||||||
use task;
|
use task;
|
||||||
use task::local_data::{local_data_pop, local_data_set};
|
use local_data::{local_data_pop, local_data_set};
|
||||||
|
|
||||||
// helper for transmutation, shown below.
|
// helper for transmutation, shown below.
|
||||||
type RustClosure = (int, int);
|
type RustClosure = (int, int);
|
||||||
|
@ -24,14 +24,14 @@ pub struct Handler<T, U> {
|
||||||
|
|
||||||
pub struct Condition<'self, T, U> {
|
pub struct Condition<'self, T, U> {
|
||||||
name: &'static str,
|
name: &'static str,
|
||||||
key: task::local_data::LocalDataKey<'self, Handler<T, U>>
|
key: local_data::LocalDataKey<'self, Handler<T, U>>
|
||||||
}
|
}
|
||||||
|
|
||||||
pub impl<'self, T, U> Condition<'self, T, U> {
|
pub impl<'self, T, U> Condition<'self, T, U> {
|
||||||
fn trap(&'self self, h: &'self fn(T) -> U) -> Trap<'self, T, U> {
|
fn trap(&'self self, h: &'self fn(T) -> U) -> Trap<'self, T, U> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let p : *RustClosure = ::cast::transmute(&h);
|
let p : *RustClosure = ::cast::transmute(&h);
|
||||||
let prev = task::local_data::local_data_get(self.key);
|
let prev = local_data::local_data_get(self.key);
|
||||||
let h = @Handler { handle: *p, prev: prev };
|
let h = @Handler { handle: *p, prev: prev };
|
||||||
Trap { cond: self, handler: h }
|
Trap { cond: self, handler: h }
|
||||||
}
|
}
|
||||||
|
|
|
@ -215,6 +215,7 @@ pub mod trie;
|
||||||
pub mod task;
|
pub mod task;
|
||||||
pub mod comm;
|
pub mod comm;
|
||||||
pub mod pipes;
|
pub mod pipes;
|
||||||
|
pub mod local_data;
|
||||||
|
|
||||||
|
|
||||||
/* Runtime and platform support */
|
/* Runtime and platform support */
|
||||||
|
|
|
@ -1208,7 +1208,7 @@ fn overridden_arg_key(_v: @OverriddenArgs) {}
|
||||||
|
|
||||||
pub fn args() -> ~[~str] {
|
pub fn args() -> ~[~str] {
|
||||||
unsafe {
|
unsafe {
|
||||||
match task::local_data::local_data_get(overridden_arg_key) {
|
match local_data::local_data_get(overridden_arg_key) {
|
||||||
None => real_args(),
|
None => real_args(),
|
||||||
Some(args) => copy args.val
|
Some(args) => copy args.val
|
||||||
}
|
}
|
||||||
|
@ -1218,7 +1218,7 @@ pub fn args() -> ~[~str] {
|
||||||
pub fn set_args(new_args: ~[~str]) {
|
pub fn set_args(new_args: ~[~str]) {
|
||||||
unsafe {
|
unsafe {
|
||||||
let overridden_args = @OverriddenArgs { val: copy new_args };
|
let overridden_args = @OverriddenArgs { val: copy new_args };
|
||||||
task::local_data::local_data_set(overridden_arg_key, overridden_args);
|
local_data::local_data_set(overridden_arg_key, overridden_args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,7 @@ pub use io;
|
||||||
pub use iter;
|
pub use iter;
|
||||||
pub use old_iter;
|
pub use old_iter;
|
||||||
pub use libc;
|
pub use libc;
|
||||||
|
pub use local_data;
|
||||||
pub use num;
|
pub use num;
|
||||||
pub use ops;
|
pub use ops;
|
||||||
pub use option;
|
pub use option;
|
||||||
|
|
|
@ -836,13 +836,13 @@ fn tls_rng_state(_v: @@mut IsaacRng) {}
|
||||||
pub fn task_rng() -> @@mut IsaacRng {
|
pub fn task_rng() -> @@mut IsaacRng {
|
||||||
let r : Option<@@mut IsaacRng>;
|
let r : Option<@@mut IsaacRng>;
|
||||||
unsafe {
|
unsafe {
|
||||||
r = task::local_data::local_data_get(tls_rng_state);
|
r = local_data::local_data_get(tls_rng_state);
|
||||||
}
|
}
|
||||||
match r {
|
match r {
|
||||||
None => {
|
None => {
|
||||||
unsafe {
|
unsafe {
|
||||||
let rng = @@mut IsaacRng::new_seeded(seed());
|
let rng = @@mut IsaacRng::new_seeded(seed());
|
||||||
task::local_data::local_data_set(tls_rng_state, rng);
|
local_data::local_data_set(tls_rng_state, rng);
|
||||||
rng
|
rng
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,7 +198,7 @@ mod test {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn tls() {
|
fn tls() {
|
||||||
use task::local_data::*;
|
use local_data::*;
|
||||||
do run_in_newsched_task() {
|
do run_in_newsched_task() {
|
||||||
unsafe {
|
unsafe {
|
||||||
fn key(_x: @~str) { }
|
fn key(_x: @~str) { }
|
||||||
|
|
|
@ -15,7 +15,7 @@ use cmp::Eq;
|
||||||
use libc;
|
use libc;
|
||||||
use prelude::*;
|
use prelude::*;
|
||||||
use task::rt;
|
use task::rt;
|
||||||
use task::local_data::LocalDataKey;
|
use local_data::LocalDataKey;
|
||||||
|
|
||||||
use super::rt::rust_task;
|
use super::rt::rust_task;
|
||||||
use rt::local_services::LocalStorage;
|
use rt::local_services::LocalStorage;
|
||||||
|
|
|
@ -47,7 +47,6 @@ use unstable::finally::Finally;
|
||||||
#[cfg(test)] use comm::SharedChan;
|
#[cfg(test)] use comm::SharedChan;
|
||||||
|
|
||||||
mod local_data_priv;
|
mod local_data_priv;
|
||||||
pub mod local_data;
|
|
||||||
pub mod rt;
|
pub mod rt;
|
||||||
pub mod spawn;
|
pub mod spawn;
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ use astsrv;
|
||||||
use doc::ItemUtils;
|
use doc::ItemUtils;
|
||||||
use doc;
|
use doc;
|
||||||
|
|
||||||
use core::task::local_data::local_data_get;
|
use core::local_data::local_data_get;
|
||||||
use syntax::ast;
|
use syntax::ast;
|
||||||
use syntax;
|
use syntax;
|
||||||
|
|
||||||
|
|
|
@ -69,11 +69,11 @@ fn complete_key(_v: @CompletionCb) {}
|
||||||
|
|
||||||
/// Bind to the main completion callback
|
/// Bind to the main completion callback
|
||||||
pub unsafe fn complete(cb: CompletionCb) {
|
pub unsafe fn complete(cb: CompletionCb) {
|
||||||
task::local_data::local_data_set(complete_key, @(cb));
|
local_data::local_data_set(complete_key, @(cb));
|
||||||
|
|
||||||
extern fn callback(line: *c_char, completions: *()) {
|
extern fn callback(line: *c_char, completions: *()) {
|
||||||
unsafe {
|
unsafe {
|
||||||
let cb = *task::local_data::local_data_get(complete_key)
|
let cb = *local_data::local_data_get(complete_key)
|
||||||
.get();
|
.get();
|
||||||
|
|
||||||
do cb(str::raw::from_c_str(line)) |suggestion| {
|
do cb(str::raw::from_c_str(line)) |suggestion| {
|
||||||
|
|
|
@ -1211,11 +1211,11 @@ mod big_tests {
|
||||||
#[unsafe_destructor]
|
#[unsafe_destructor]
|
||||||
impl<'self> Drop for LVal<'self> {
|
impl<'self> Drop for LVal<'self> {
|
||||||
fn finalize(&self) {
|
fn finalize(&self) {
|
||||||
let x = unsafe { task::local_data::local_data_get(self.key) };
|
let x = unsafe { local_data::local_data_get(self.key) };
|
||||||
match x {
|
match x {
|
||||||
Some(@y) => {
|
Some(@y) => {
|
||||||
unsafe {
|
unsafe {
|
||||||
task::local_data::local_data_set(self.key, @(y+1));
|
local_data::local_data_set(self.key, @(y+1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => fail!(~"Expected key to work"),
|
_ => fail!(~"Expected key to work"),
|
||||||
|
|
|
@ -1202,11 +1202,11 @@ mod big_tests {
|
||||||
#[unsafe_destructor]
|
#[unsafe_destructor]
|
||||||
impl<'self> Drop for LVal<'self> {
|
impl<'self> Drop for LVal<'self> {
|
||||||
fn finalize(&self) {
|
fn finalize(&self) {
|
||||||
let x = unsafe { task::local_data::local_data_get(self.key) };
|
let x = unsafe { local_data::local_data_get(self.key) };
|
||||||
match x {
|
match x {
|
||||||
Some(@y) => {
|
Some(@y) => {
|
||||||
unsafe {
|
unsafe {
|
||||||
task::local_data::local_data_set(self.key, @(y+1));
|
local_data::local_data_set(self.key, @(y+1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => fail!(~"Expected key to work"),
|
_ => fail!(~"Expected key to work"),
|
||||||
|
|
|
@ -74,7 +74,7 @@ impl<S:Encoder> Encodable<S> for ident {
|
||||||
fn encode(&self, s: &mut S) {
|
fn encode(&self, s: &mut S) {
|
||||||
unsafe {
|
unsafe {
|
||||||
let intr =
|
let intr =
|
||||||
match task::local_data::local_data_get(interner_key!()) {
|
match local_data::local_data_get(interner_key!()) {
|
||||||
None => fail!(~"encode: TLS interner not set up"),
|
None => fail!(~"encode: TLS interner not set up"),
|
||||||
Some(intr) => intr
|
Some(intr) => intr
|
||||||
};
|
};
|
||||||
|
@ -87,7 +87,7 @@ impl<S:Encoder> Encodable<S> for ident {
|
||||||
impl<D:Decoder> Decodable<D> for ident {
|
impl<D:Decoder> Decodable<D> for ident {
|
||||||
fn decode(d: &mut D) -> ident {
|
fn decode(d: &mut D) -> ident {
|
||||||
let intr = match unsafe {
|
let intr = match unsafe {
|
||||||
task::local_data::local_data_get(interner_key!())
|
local_data::local_data_get(interner_key!())
|
||||||
} {
|
} {
|
||||||
None => fail!(~"decode: TLS interner not set up"),
|
None => fail!(~"decode: TLS interner not set up"),
|
||||||
Some(intr) => intr
|
Some(intr) => intr
|
||||||
|
|
|
@ -462,7 +462,7 @@ pub fn mk_fresh_ident_interner() -> @ident_interner {
|
||||||
interner: interner::Interner::prefill(init_vec)
|
interner: interner::Interner::prefill(init_vec)
|
||||||
};
|
};
|
||||||
unsafe {
|
unsafe {
|
||||||
task::local_data::local_data_set(interner_key!(), @rv);
|
local_data::local_data_set(interner_key!(), @rv);
|
||||||
}
|
}
|
||||||
rv
|
rv
|
||||||
}
|
}
|
||||||
|
@ -471,7 +471,7 @@ pub fn mk_fresh_ident_interner() -> @ident_interner {
|
||||||
// fresh one.
|
// fresh one.
|
||||||
pub fn mk_ident_interner() -> @ident_interner {
|
pub fn mk_ident_interner() -> @ident_interner {
|
||||||
unsafe {
|
unsafe {
|
||||||
match task::local_data::local_data_get(interner_key!()) {
|
match local_data::local_data_get(interner_key!()) {
|
||||||
Some(interner) => *interner,
|
Some(interner) => *interner,
|
||||||
None => {
|
None => {
|
||||||
mk_fresh_ident_interner()
|
mk_fresh_ident_interner()
|
||||||
|
|
Loading…
Reference in New Issue