std: add safety comment in LazyLock::get

This commit is contained in:
joboet 2023-01-27 10:11:42 +01:00
parent 7165e610a2
commit 6520488e37
No known key found for this signature in database
GPG Key ID: 704E0149B0194B3C

View File

@ -111,7 +111,14 @@ impl<T, F: FnOnce() -> T> LazyLock<T, F> {
impl<T, F> LazyLock<T, F> {
/// Get the inner value if it has already been initialized.
fn get(&self) -> Option<&T> {
if self.once.is_completed() { Some(unsafe { &*(*self.data.get()).value }) } else { None }
if self.once.is_completed() {
// SAFETY:
// The closure has been run successfully, so `value` has been initialized
// and will not be modified again.
Some(unsafe { &*(*self.data.get()).value })
} else {
None
}
}
}