@@ -20,6 +20,8 @@ union Data<T, F> {
2020/// A value which is initialized on the first access.
2121///
2222/// This type is a thread-safe [`LazyCell`], and can be used in statics.
23+ /// Therefore, any dereferencing call will block the calling thread if
24+ /// another initialization routine is currently running.
2325///
2426/// [`LazyCell`]: crate::cell::LazyCell
2527///
@@ -81,8 +83,7 @@ pub struct LazyLock<T, F = fn() -> T> {
8183}
8284
8385impl < T , F : FnOnce ( ) -> T > LazyLock < T , F > {
84- /// Creates a new lazy value with the given initializing
85- /// function.
86+ /// Creates a new lazy value with the given initializing function.
8687 #[ inline]
8788 #[ unstable( feature = "lazy_cell" , issue = "109736" ) ]
8889 pub const fn new ( f : F ) -> LazyLock < T , F > {
@@ -239,7 +240,7 @@ impl<T: fmt::Debug, F> fmt::Debug for LazyLock<T, F> {
239240}
240241
241242// We never create a `&F` from a `&LazyLock<T, F>` so it is fine
242- // to not impl `Sync` for `F`
243+ // to not impl `Sync` for `F`.
243244#[ unstable( feature = "lazy_cell" , issue = "109736" ) ]
244245unsafe impl < T : Sync + Send , F : Send > Sync for LazyLock < T , F > { }
245246// auto-derived `Send` impl is OK.
0 commit comments