diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-07-12 01:38:44 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-07-14 09:29:12 -0700 |
| commit | e3211fa1f1f24268b91b0c89cb312e70499d41f3 (patch) | |
| tree | adcfe3900f33641ac4c73bff3e61f048d7270157 /src/libstd/rand.rs | |
| parent | 242606c79339e2d2e3cf15cc8f02bd6ebc0b8c44 (diff) | |
| download | rust-e3211fa1f1f24268b91b0c89cb312e70499d41f3.tar.gz rust-e3211fa1f1f24268b91b0c89cb312e70499d41f3.zip | |
Purge the last remnants of the old TLS api
Closes #3273
Diffstat (limited to 'src/libstd/rand.rs')
| -rw-r--r-- | src/libstd/rand.rs | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/libstd/rand.rs b/src/libstd/rand.rs index 2cf45ba70ec..8551012d6d7 100644 --- a/src/libstd/rand.rs +++ b/src/libstd/rand.rs @@ -851,7 +851,10 @@ pub fn seed() -> ~[u8] { } // used to make space in TLS for a random number generator +#[cfg(stage0)] fn tls_rng_state(_v: @@mut IsaacRng) {} +#[cfg(not(stage0))] +static tls_rng_state: local_data::Key<@@mut IsaacRng> = &[]; /** * Gives back a lazily initialized task-local random number generator, @@ -860,17 +863,12 @@ fn tls_rng_state(_v: @@mut IsaacRng) {} */ #[inline] pub fn task_rng() -> @mut IsaacRng { - let r : Option<@@mut IsaacRng>; - unsafe { - r = local_data::get(tls_rng_state, |k| k.map(|&k| *k)); - } + let r = local_data::get(tls_rng_state, |k| k.map(|&k| *k)); match r { None => { - unsafe { - let rng = @@mut IsaacRng::new_seeded(seed()); - local_data::set(tls_rng_state, rng); - *rng - } + let rng = @@mut IsaacRng::new_seeded(seed()); + local_data::set(tls_rng_state, rng); + *rng } Some(rng) => *rng } |
