diff --git a/src/unsafe/mutable-static-variables.md b/src/unsafe/mutable-static-variables.md index 75cf49e3..6383a2f3 100644 --- a/src/unsafe/mutable-static-variables.md +++ b/src/unsafe/mutable-static-variables.md @@ -29,7 +29,11 @@ fn main() {
-Using a mutable static is generally a bad idea, but there are some cases where it might make sense -in low-level `no_std` code, such as implementing a heap allocator or working with some C APIs. +- The program here is safe because it is single-threaded. However, the Rust compiler is conservative + and will assume the worst. Try removing the `unsafe` and see how the compiler explains that it is + undefined behavior to mutate a static from multiple threads. + +- Using a mutable static is generally a bad idea, but there are some cases where it might make sense + in low-level `no_std` code, such as implementing a heap allocator or working with some C APIs.