mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-24 15:54:15 +00:00
Clarify availability of atomic operations
This was noticed while we were updating the embedded rust book: https://github.com/rust-embedded/book/pull/273/files These targets do natively have atomic load/stores, but do not support CAS operations.
This commit is contained in:
parent
f5230fbf76
commit
69477f50d8
@ -47,9 +47,16 @@
|
|||||||
//!
|
//!
|
||||||
//! * PowerPC and MIPS platforms with 32-bit pointers do not have `AtomicU64` or
|
//! * PowerPC and MIPS platforms with 32-bit pointers do not have `AtomicU64` or
|
||||||
//! `AtomicI64` types.
|
//! `AtomicI64` types.
|
||||||
//! * ARM platforms like `armv5te` that aren't for Linux do not have any atomics
|
//! * ARM platforms like `armv5te` that aren't for Linux only provide `load`
|
||||||
//! at all.
|
//! and `store` operations, and do not support Compare and Swap (CAS)
|
||||||
//! * ARM targets with `thumbv6m` do not have atomic operations at all.
|
//! operations, such as `swap`, `fetch_add`, etc. Additionally on Linux,
|
||||||
|
//! these CAS operations are implemented via [operating system support], which
|
||||||
|
//! may come with a performance penalty.
|
||||||
|
//! * ARM targets with `thumbv6m` only provide `load` and `store` operations,
|
||||||
|
//! and do not support Compare and Swap (CAS) operations, such as `swap`,
|
||||||
|
//! `fetch_add`, etc.
|
||||||
|
//!
|
||||||
|
//! [operating system support]: https://www.kernel.org/doc/Documentation/arm/kernel_user_helpers.txt
|
||||||
//!
|
//!
|
||||||
//! Note that future platforms may be added that also do not have support for
|
//! Note that future platforms may be added that also do not have support for
|
||||||
//! some atomic operations. Maximally portable code will want to be careful
|
//! some atomic operations. Maximally portable code will want to be careful
|
||||||
|
Loading…
Reference in New Issue
Block a user