spin 0.9.4

Spin-based synchronization primitives
Documentation
[package]
name = "spin"
version = "0.9.4"
authors = [
    "Mathijs van de Nes <git@mathijs.vd-nes.nl>",
    "John Ericson <git@JohnEricson.me>",
    "Joshua Barretto <joshua.s.barretto@gmail.com>",
]
license = "MIT"
repository = "https://github.com/mvdnes/spin-rs.git"
keywords = ["spinlock", "mutex", "rwlock"]
description = "Spin-based synchronization primitives"

[dependencies]
lock_api_crate = { package = "lock_api", version = "0.4", optional = true }
portable-atomic = { version = "0.3", optional = true, default-features = false }

[features]
default = ["lock_api", "mutex", "spin_mutex", "rwlock", "once", "lazy", "barrier"]

# Enables `Mutex`. Must be used with either `spin_mutex` or `use_ticket_mutex`.
mutex = []

# Enables `SpinMutex` and the default spin mutex implementation for `Mutex`.
spin_mutex = ["mutex"]

# Enables `TicketMutex`.
ticket_mutex = ["mutex"]

# Enables the non-default ticket mutex implementation for `Mutex`.
use_ticket_mutex = ["mutex", "ticket_mutex"]

# Enables `RwLock`.
rwlock = []

# Enables `Once`.
once = []

# Enables `Lazy`.
lazy = ["once"]

# Enables `Barrier`. Because this feature uses `mutex`, either `spin_mutex` or `use_ticket_mutex` must be enabled.
barrier = ["mutex"]

# Enables `lock_api`-compatible types that use the primitives in this crate internally.
lock_api = ["lock_api_crate"]

# Enables std-only features such as yield-relaxing.
std = []

# Use the portable_atomic crate to support platforms without native atomic operations
# cfg 'portable_atomic_unsafe_assume_single_core' must also be set by the final binary crate.
# This cfg is unsafe and enabling it for multicore systems is unsound.
portable_atomic = ["portable-atomic"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]