mirror of
https://github.com/alexpasmantier/television.git
synced 2025-06-06 03:25:23 +00:00
18 lines
672 B
Rust
18 lines
672 B
Rust
use std::num::NonZeroUsize;
|
|
|
|
/// Get the number of threads to use by default.
|
|
///
|
|
/// This will use the number of available threads if possible, but will default to 1 if the number
|
|
/// of available threads cannot be determined. It will also never use more than 32 threads to avoid
|
|
/// startup overhead.
|
|
pub fn default_num_threads() -> NonZeroUsize {
|
|
// default to 1 thread if we can't determine the number of available threads
|
|
let default = NonZeroUsize::MIN;
|
|
// never use more than 32 threads to avoid startup overhead
|
|
let limit = NonZeroUsize::new(32).unwrap();
|
|
|
|
std::thread::available_parallelism()
|
|
.unwrap_or(default)
|
|
.min(limit)
|
|
}
|