Rollup merge of #133145 - kornelski:static-mutex, r=traviscross
Document alternatives to `static mut` In #133143 I've noticed alternatives to `static mut` aren't documented anywhere.
This commit is contained in:
commit
19c145d816
1 changed files with 6 additions and 0 deletions
|
@ -1448,6 +1448,9 @@ mod self_upper_keyword {}
|
||||||
/// in a multithreaded context. As such, all accesses to mutable `static`s
|
/// in a multithreaded context. As such, all accesses to mutable `static`s
|
||||||
/// require an [`unsafe`] block.
|
/// require an [`unsafe`] block.
|
||||||
///
|
///
|
||||||
|
/// When possible, it's often better to use a non-mutable `static` with an
|
||||||
|
/// interior mutable type such as [`Mutex`], [`OnceLock`], or an [atomic].
|
||||||
|
///
|
||||||
/// Despite their unsafety, mutable `static`s are necessary in many contexts:
|
/// Despite their unsafety, mutable `static`s are necessary in many contexts:
|
||||||
/// they can be used to represent global state shared by the whole program or in
|
/// they can be used to represent global state shared by the whole program or in
|
||||||
/// [`extern`] blocks to bind to variables from C libraries.
|
/// [`extern`] blocks to bind to variables from C libraries.
|
||||||
|
@ -1468,7 +1471,10 @@ mod self_upper_keyword {}
|
||||||
/// [`extern`]: keyword.extern.html
|
/// [`extern`]: keyword.extern.html
|
||||||
/// [`mut`]: keyword.mut.html
|
/// [`mut`]: keyword.mut.html
|
||||||
/// [`unsafe`]: keyword.unsafe.html
|
/// [`unsafe`]: keyword.unsafe.html
|
||||||
|
/// [`Mutex`]: sync::Mutex
|
||||||
|
/// [`OnceLock`]: sync::OnceLock
|
||||||
/// [`RefCell`]: cell::RefCell
|
/// [`RefCell`]: cell::RefCell
|
||||||
|
/// [atomic]: sync::atomic
|
||||||
/// [Reference]: ../reference/items/static-items.html
|
/// [Reference]: ../reference/items/static-items.html
|
||||||
mod static_keyword {}
|
mod static_keyword {}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue