Skip to content

Commit

Permalink
Explain the atomic orderings used in race
Browse files Browse the repository at this point in the history
  • Loading branch information
Kestrer committed Mar 17, 2022
1 parent 090caea commit 7d45ce0
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/race.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@
//! them stores the result.
//!
//! This module does not require `std` feature.
//!
//! # Atomic orderings
//!
//! All types in this module use `Acquire` and `Release`
//! [atomic orderings](Ordering) for all their operations. While this is not
//! strictly necessary, it is useful for users as it allows them to be certain
//! that after `get` or `get_or_init` returns on one thread, any side-effects
//! caused by the setter thread prior to them calling `set` or `get_or_init`
//! will be made visible to that thread; without it, it's possible for it to
//! appear as if they haven't happened yet from the getter thread's perspective.
//! This is an acceptable tradeoff to make since `Acquire` and `Release` have
//! very little performance overhead on most architectures versus `Relaxed`.

#[cfg(feature = "atomic-polyfill")]
use atomic_polyfill as atomic;
Expand Down

0 comments on commit 7d45ce0

Please sign in to comment.