imp_cs.rs |
|
2485 |
imp_pl.rs |
|
5803 |
imp_std.rs |
|
12743 |
lib.rs |
|
46949 |
race.rs |
Thread-safe, non-blocking, "first one wins" flavor of `OnceCell`.
If two threads race to initialize a type from the `race` module, they
don't block, execute initialization function together, but only one of
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 for types other than `OnceBox`, 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`. |
13277 |