Use Forever::put_with
inside Forever::put
This commit is contained in:
parent
84cffc751a
commit
41e392bda3
1 changed files with 1 additions and 14 deletions
|
@ -52,20 +52,7 @@ impl<T> Forever<T> {
|
|||
#[inline(always)]
|
||||
#[allow(clippy::mut_from_ref)]
|
||||
pub fn put(&'static self, val: T) -> &'static mut T {
|
||||
if self
|
||||
.used
|
||||
.compare_exchange(false, true, Ordering::Relaxed, Ordering::Relaxed)
|
||||
.is_err()
|
||||
{
|
||||
panic!("Forever::put() called multiple times");
|
||||
}
|
||||
|
||||
unsafe {
|
||||
let p = self.t.get();
|
||||
let p = (&mut *p).as_mut_ptr();
|
||||
p.write(val);
|
||||
&mut *p
|
||||
}
|
||||
self.put_with(|| val)
|
||||
}
|
||||
|
||||
/// Store the closure return value in this `Forever`, returning a mutable reference to it.
|
||||
|
|
Loading…
Reference in a new issue