[package]
edition = "2021"
rust-version = "1.71"
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>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Spin-based synchronization primitives"
readme = "README.md"
keywords = [
"spinlock",
"mutex",
"rwlock",
]
license = "MIT"
repository = "https://codeberg.org/zesterer/spin"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
barrier = ["mutex"]
default = [
"lock_api",
"mutex",
"spin_mutex",
"rwlock",
"once",
"lazylock",
"barrier",
]
fair_mutex = ["mutex"]
lazy = ["lazylock"]
lazylock = ["once"]
lock_api = ["dep:lock_api_crate"]
mutex = []
once = []
portable-atomic = ["dep:portable-atomic"]
portable_atomic = ["portable-atomic"]
rustc-dep-of-std = ["core"]
rwlock = []
spin_mutex = ["mutex"]
std = []
ticket_mutex = ["mutex"]
use_ticket_mutex = [
"mutex",
"ticket_mutex",
]
[lib]
name = "spin"
path = "src/lib.rs"
[[example]]
name = "debug"
path = "examples/debug.rs"
required-features = [
"mutex",
"rwlock",
]
[[bench]]
name = "mutex"
path = "benches/mutex.rs"
harness = false
required-features = ["ticket_mutex"]
[dependencies.core]
version = "1.0.0"
optional = true
package = "rustc-std-workspace-core"
[dependencies.lock_api_crate]
version = "0.4"
optional = true
package = "lock_api"
[dependencies.portable-atomic]
version = "1.3"
features = ["require-cas"]
optional = true
default-features = false
[dev-dependencies.criterion]
version = "0.4"