Make task_rng() return @mut R instead of @@mut R
This commit is contained in:
parent
f348465283
commit
b8b2d1e5b4
1 changed files with 6 additions and 10 deletions
|
@ -843,7 +843,7 @@ fn tls_rng_state(_v: @@mut IsaacRng) {}
|
||||||
* `task_rng().gen::<int>()`.
|
* `task_rng().gen::<int>()`.
|
||||||
*/
|
*/
|
||||||
#[inline]
|
#[inline]
|
||||||
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 = local_data::local_data_get(tls_rng_state);
|
r = local_data::local_data_get(tls_rng_state);
|
||||||
|
@ -853,20 +853,18 @@ pub fn task_rng() -> @@mut IsaacRng {
|
||||||
unsafe {
|
unsafe {
|
||||||
let rng = @@mut IsaacRng::new_seeded(seed());
|
let rng = @@mut IsaacRng::new_seeded(seed());
|
||||||
local_data::local_data_set(tls_rng_state, rng);
|
local_data::local_data_set(tls_rng_state, rng);
|
||||||
rng
|
*rng
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(rng) => rng
|
Some(rng) => *rng
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allow direct chaining with `task_rng`
|
// Allow direct chaining with `task_rng`
|
||||||
impl<R: Rng> Rng for @@mut R {
|
impl<R: Rng> Rng for @mut R {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn next(&mut self) -> u32 {
|
fn next(&mut self) -> u32 {
|
||||||
match *self {
|
(**self).next()
|
||||||
@@ref mut r => r.next()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -876,9 +874,7 @@ impl<R: Rng> Rng for @@mut R {
|
||||||
*/
|
*/
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn random<T: Rand>() -> T {
|
pub fn random<T: Rand>() -> T {
|
||||||
match *task_rng() {
|
task_rng().gen()
|
||||||
@ref mut r => r.gen()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|
Loading…
Reference in a new issue