@@ -2033,18 +2033,18 @@ pub const unsafe fn write_unaligned<T>(dst: *mut T, src: T) {
2033
2033
/// semantics will almost always end up pretty similar to [C11's definition of volatile][c11].
2034
2034
///
2035
2035
/// Volatile operations are intended to act on I/O memory. As such, they are considered externally
2036
- /// observable events (just like syscalls), and are guaranteed to not be elided or reordered by the
2037
- /// compiler across other externally observable events. With this in mind, there are two cases of
2038
- /// usage that need to be distinguished:
2036
+ /// observable events (just like syscalls, but less opaque ), and are guaranteed to not be elided or
2037
+ /// reordered by the compiler across other externally observable events. With this in mind, there
2038
+ /// are two cases of usage that need to be distinguished:
2039
2039
///
2040
2040
/// - When a volatile operation is used for memory inside an [allocation], it behaves exactly like
2041
2041
/// [`read`], except for the additional guarantee that it won't be elided or reordered (see
2042
2042
/// above). This implies that the operation will actually access memory and not e.g. be lowered to
2043
- /// reusing data from a previous read, such as a register that performed a previous load on that
2044
- /// memory. Other than that, all the usual rules for memory accesses apply (including provenance).
2045
- /// In particular, just like in C, whether an operation is volatile has no bearing whatsoever on
2046
- /// questions involving concurrent access from multiple threads. Volatile accesses behave exactly
2047
- /// like non-atomic accesses in that regard.
2043
+ /// reusing data from a previous read, such as from a register on which previous load of that
2044
+ /// memory was performed . Other than that, all the usual rules for memory accesses apply
2045
+ /// (including provenance). In particular, just like in C, whether an operation is volatile has
2046
+ /// no bearing whatsoever on questions involving concurrent access from multiple threads. Volatile
2047
+ /// accesses behave exactly like non-atomic accesses in that regard.
2048
2048
///
2049
2049
/// - Volatile operations, however, may also be used to access memory that is _outside_ of any Rust
2050
2050
/// allocation. In this use-case, the pointer does *not* have to be [valid] for reads. This is
0 commit comments