[package]
name = "spin"
version = "0.12.0"
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://codeberg.org/zesterer/spin"
keywords = ["spinlock", "mutex", "rwlock"]
description = "Spin-based synchronization primitives"
rust-version = "1.71"
edition = "2021"
[dependencies]
lock_api_crate = { package = "lock_api", version = "0.4", optional = true }
portable-atomic = { version = "1.3", optional = true, default-features = false, features = ["require-cas"] }
core = { version = "1.0.0", optional = true, package = "rustc-std-workspace-core" }
[features]
default = ["lock_api", "mutex", "spin_mutex", "rwlock", "once", "lazylock", "barrier"]
mutex = []
spin_mutex = ["mutex"]
ticket_mutex = ["mutex"]
fair_mutex = ["mutex"]
use_ticket_mutex = ["mutex", "ticket_mutex"]
rwlock = []
once = []
lazylock = ["once"]
lazy = ["lazylock"]
barrier = ["mutex"]
lock_api = ["dep:lock_api_crate"]
std = []
portable-atomic = ["dep:portable-atomic"]
portable_atomic = ["portable-atomic"]
rustc-dep-of-std = ["core"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dev-dependencies]
criterion = "0.4"
[[bench]]
name = "mutex"
harness = false
required-features = ["ticket_mutex"]
[[example]]
name = "debug"
required-features = ["mutex", "rwlock"]