Expand description
Synchronization primitives built with portable-atomic.
- Provide
Arc. (optional, requires thestdorallocfeature) - Provide
task::Wake. (optional, requires thestdorallocfeature)
See #1 for other primitives being considered for addition to this crate.
§Optional features
-
std
Usestd.Note:
- This implicitly enables the
allocfeature.
- This implicitly enables the
-
alloc
Usealloc.Note:
- The MSRV when this feature is enabled and the
stdfeature is not enabled is Rust 1.36 thatalloccrate stabilized.
- The MSRV when this feature is enabled and the
§Optional cfg
One of the ways to enable cfg is to set rustflags in the cargo config:
# .cargo/config.toml
[target.<target>]
rustflags = ["--cfg", "portable_atomic_unstable_coerce_unsized"]Or set environment variable:
RUSTFLAGS="--cfg portable_atomic_unstable_coerce_unsized" cargo ...-
--cfg portable_atomic_unstable_coerce_unsized
Support coercing ofArc<T>toArc<U>as instd::sync::Arc.This cfg requires Rust nightly because this coercing requires unstable
CoerceUnsizedtrait.See this issue comment for another known workaround.
Note: This cfg is unstable and outside of the normal semver guarantees and minor or patch versions of portable-atomic-util may make breaking changes to them at any time.
Modules§
- task
allocorstd - Types and Traits for working with asynchronous tasks.
Structs§
- Arc
allocorstd - A thread-safe reference-counting pointer. ‘Arc’ stands for ‘Atomically Reference Counted’.
- Weak
allocorstd Weakis a version ofArcthat holds a non-owning reference to the managed allocation. The allocation is accessed by callingupgradeon theWeakpointer, which returns anOption<Arc<T>>.