about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/std/src/sync/lazy_lock.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/library/std/src/sync/lazy_lock.rs b/library/std/src/sync/lazy_lock.rs
index 98da015423a..7e85d6a063a 100644
--- a/library/std/src/sync/lazy_lock.rs
+++ b/library/std/src/sync/lazy_lock.rs
@@ -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
+        }
     }
 }