Struct async_cpupool::Config
source · pub struct Config { /* private fields */ }
Expand description
Configuration builder for the CpuPool
Implementations§
source§impl Config
impl Config
sourcepub fn name(self, name: &'static str) -> Self
pub fn name(self, name: &'static str) -> Self
Set the name for the CpuPool
This is used for setting the names of spawned threads
default: "cpupool"
Example:
Config::new().name("sig-pool");
sourcepub fn buffer_multiplier(self, buffer_multiplier: usize) -> Self
pub fn buffer_multiplier(self, buffer_multiplier: usize) -> Self
Set the multiplier for the internal queue’s buffer size
This value must be at least 1. the buffer’s size will be equal to max_threads * buffer_multiplier
default: 8
Example:
Config::new().buffer_multiplier(4);
sourcepub fn min_threads(self, min_threads: u16) -> Self
pub fn min_threads(self, min_threads: u16) -> Self
Set the minimum allowed number of running threads
When there is little work to do, threads will be reaped until just this number remain
default: 1
Example:
Config::new().min_threads(2);
sourcepub fn max_threads(self, max_threads: u16) -> Self
pub fn max_threads(self, max_threads: u16) -> Self
Set the maximum allowed number of running threads
When the threadpool is under load, threads will be spawned until this limit is reached
default: 4
Example:
Config::new().max_threads(16);
sourcepub fn build(self) -> Result<CpuPool, ConfigError>
pub fn build(self) -> Result<CpuPool, ConfigError>
Create a CpuPool with the given configuration, spawning min_threads
threads
This will error if min_threads
is greater than max_threads
, or if buffer_multiplier
,
max_threads
, or min_threads
are 0
Example:
let pool = Config::new()
.name("sig-pool")
.min_threads(4)
.max_threads(16)
.buffer_multiplier(2)
.build()?;