use std::time::Duration;
#[derive(Debug, Clone)]
pub struct PerThreadConfig {
pub workers: usize,
pub pin_to_core: bool,
pub backlog: i32,
pub drain_timeout: Duration,
}
impl Default for PerThreadConfig {
fn default() -> Self {
Self {
workers: num_cpus(),
pin_to_core: cfg!(feature = "affinity"),
backlog: 1024,
drain_timeout: Duration::from_secs(30),
}
}
}
fn num_cpus() -> usize {
std::thread::available_parallelism().map_or(1, std::num::NonZero::get)
}