diff --git a/src/races.md b/src/races.md index d5f1ea0..aaeaf5b 100644 --- a/src/races.md +++ b/src/races.md @@ -7,7 +7,7 @@ Safe Rust guarantees an absence of data races, which are defined as: * one or more of them is unsynchronized A data race has Undefined Behavior, and is therefore impossible to perform in -Safe Rust. Data races are *mostly* prevented through Rust's ownership system: +Safe Rust. Data races are prevented *mostly* through Rust's ownership system alone: it's impossible to alias a mutable reference, so it's impossible to perform a data race. Interior mutability makes this more complicated, which is largely why we have the Send and Sync traits (see the next section for more on this). diff --git a/src/what-unsafe-does.md b/src/what-unsafe-does.md index 3fb0721..535b79e 100644 --- a/src/what-unsafe-does.md +++ b/src/what-unsafe-does.md @@ -41,7 +41,7 @@ language cares about is preventing the following things: [`NonNull`] that is null. (Requesting custom invalid values is an unstable feature, but some stable libstd types, like `NonNull`, make use of it.) -For a more detailed explanation about "Undefined Bahavior", you may refer to +For a more detailed explanation about "Undefined Behavior", you may refer to [the reference][behavior-considered-undefined]. "Producing" a value happens any time a value is assigned, passed to a