threadteam 0.2.0

Scoped CPU thread-team placement token: a Pool and a non-Clone Exec with fork, for_ranges, external and broadcast; no Rayon type in the public API.
Documentation
[package]
name = "threadteam"
version = "0.2.0"
edition = "2021"
license = "MIT OR Apache-2.0"
authors = ["Satoshi Terasaki", "Hiroshi Shinaoka"]
repository = "https://github.com/tensor4all/threadteam-rs"
readme = "README.md"
documentation = "https://docs.rs/threadteam"
description = "Scoped CPU thread-team placement token: a Pool and a non-Clone Exec with fork, for_ranges, external and broadcast; no Rayon type in the public API."
keywords = ["threading", "parallel", "scheduler", "placement", "thread-pool"]
categories = ["concurrency", "science"]

[features]
default = ["parallel"]
# Run entries on a private Rayon pool. Without it the same types exist, every
# pool has width 1 and every entry runs inline on the calling thread.
parallel = ["dep:rayon"]
# Test support: per-root live-task ledger and entry counters. Zero cost when off.
ledger = []
# Test support: hooks that pause threads inside the park/wake handshake and
# deliberate protocol breakages (see `test_hooks`). Zero cost when off.
test-hooks = []
# Test support: a ring of timestamped state transitions per reserved member
# (see `trace`). Zero cost when off.
trace = []

[dependencies]
rayon = { version = "1.10", optional = true }
thiserror = "1.0"

[lib]
bench = false

[target.'cfg(loom)'.dependencies]
loom = "0.7"

# Worker QoS (`pthread_set_qos_class_self_np`).
[target.'cfg(target_vendor = "apple")'.dependencies]
libc = "0.2"

# Participant placement (`sched_getaffinity` / `sched_setaffinity`).
[target.'cfg(target_os = "linux")'.dependencies]
libc = "0.2"

[dev-dependencies]
libc = "0.2"

[[bench]]
name = "team_dispatch"
harness = false

[[bench]]
name = "dispatch_cost"
harness = false
required-features = ["parallel"]

[[bench]]
name = "wake_probe"
harness = false

[[bench]]
name = "idle_trace"
harness = false
required-features = ["trace", "parallel"]

[[bench]]
name = "spin_grid"
harness = false
required-features = ["parallel"]

[[test]]
name = "idle_clock"
required-features = ["trace", "parallel"]

[[test]]
name = "team_hooks"
required-features = ["test-hooks", "parallel"]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(loom)'] }

[[bench]]
name = "cost_lookup"
harness = false

[[bench]]
name = "wait_scenarios"
harness = false
required-features = ["parallel"]