Skip to main content

adze_concurrency_env_vars_core/
lib.rs

1//! Shared constants for concurrency environment configuration.
2
3#![forbid(unsafe_op_in_unsafe_fn)]
4#![deny(missing_docs)]
5#![cfg_attr(feature = "strict_api", deny(unreachable_pub))]
6#![cfg_attr(not(feature = "strict_api"), warn(unreachable_pub))]
7#![cfg_attr(feature = "strict_docs", deny(missing_docs))]
8#![cfg_attr(not(feature = "strict_docs"), allow(missing_docs))]
9
10/// Environment variable used for Rayon global thread-pool caps.
11pub const RAYON_NUM_THREADS_ENV: &str = "RAYON_NUM_THREADS";
12
13/// Environment variable used for Tokio worker-thread caps.
14pub const TOKIO_WORKER_THREADS_ENV: &str = "TOKIO_WORKER_THREADS";
15
16/// Default thread count used for Rayon when `RAYON_NUM_THREADS` is unset/invalid.
17pub const DEFAULT_RAYON_NUM_THREADS: usize = 4;
18
19/// Default worker count used for Tokio when `TOKIO_WORKER_THREADS` is unset/invalid.
20pub const DEFAULT_TOKIO_WORKER_THREADS: usize = 2;
21
22#[cfg(test)]
23mod tests {
24    use super::*;
25
26    #[test]
27    fn env_var_constants_match_expected_names() {
28        assert_eq!(RAYON_NUM_THREADS_ENV, "RAYON_NUM_THREADS");
29        assert_eq!(TOKIO_WORKER_THREADS_ENV, "TOKIO_WORKER_THREADS");
30    }
31
32    #[test]
33    fn defaults_match_expected_values() {
34        assert_eq!(DEFAULT_RAYON_NUM_THREADS, 4);
35        assert_eq!(DEFAULT_TOKIO_WORKER_THREADS, 2);
36    }
37}