mirror of https://github.com/rust-lang/rust.git
clarify how Rust atomics correspond to C++ atomics
This commit is contained in:
parent
303d916867
commit
f020fc08a5
|
@ -4,6 +4,12 @@
|
||||||
//! threads, and are the building blocks of other concurrent
|
//! threads, and are the building blocks of other concurrent
|
||||||
//! types.
|
//! types.
|
||||||
//!
|
//!
|
||||||
|
//! Rust atomics follow the same rules as [C++20 atomics][cpp], specifically `atomic_ref`.
|
||||||
|
//! Basically, creating a *shared reference* to one of the Rust atomic types corresponds to creating
|
||||||
|
//! an `atomic_ref` in C++; the `atomic_ref` is destroyed when the lifetime of the shared reference
|
||||||
|
//! ends. (A Rust atomic type that is exclusively owned or behind a mutable reference does *not*
|
||||||
|
//! correspond to an "atomic object" in C++, since it can be accessed via non-atomic operations.)
|
||||||
|
//!
|
||||||
//! This module defines atomic versions of a select number of primitive
|
//! This module defines atomic versions of a select number of primitive
|
||||||
//! types, including [`AtomicBool`], [`AtomicIsize`], [`AtomicUsize`],
|
//! types, including [`AtomicBool`], [`AtomicIsize`], [`AtomicUsize`],
|
||||||
//! [`AtomicI8`], [`AtomicU16`], etc.
|
//! [`AtomicI8`], [`AtomicU16`], etc.
|
||||||
|
@ -14,6 +20,7 @@
|
||||||
//! the memory barrier for that operation. These orderings are the
|
//! the memory barrier for that operation. These orderings are the
|
||||||
//! same as the [C++20 atomic orderings][1]. For more information see the [nomicon][2].
|
//! same as the [C++20 atomic orderings][1]. For more information see the [nomicon][2].
|
||||||
//!
|
//!
|
||||||
|
//! [cpp]: https://en.cppreference.com/w/cpp/atomic
|
||||||
//! [1]: https://en.cppreference.com/w/cpp/atomic/memory_order
|
//! [1]: https://en.cppreference.com/w/cpp/atomic/memory_order
|
||||||
//! [2]: ../../../nomicon/atomics.html
|
//! [2]: ../../../nomicon/atomics.html
|
||||||
//!
|
//!
|
||||||
|
|
Loading…
Reference in New Issue