mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
Allow forcing a style threadpool of size 1.
This commit is contained in:
parent
18baf5ec78
commit
5a28c87b8e
1 changed files with 15 additions and 2 deletions
|
@ -57,12 +57,25 @@ lazy_static! {
|
||||||
pub static ref GLOBAL_STYLE_DATA: GlobalStyleData = {
|
pub static ref GLOBAL_STYLE_DATA: GlobalStyleData = {
|
||||||
let stylo_threads = env::var("STYLO_THREADS")
|
let stylo_threads = env::var("STYLO_THREADS")
|
||||||
.map(|s| s.parse::<usize>().expect("invalid STYLO_THREADS value"));
|
.map(|s| s.parse::<usize>().expect("invalid STYLO_THREADS value"));
|
||||||
let num_threads = match stylo_threads {
|
let mut num_threads = match stylo_threads {
|
||||||
Ok(num) => num,
|
Ok(num) => num,
|
||||||
_ => cmp::max(num_cpus::get() * 3 / 4, 1),
|
_ => cmp::max(num_cpus::get() * 3 / 4, 1),
|
||||||
};
|
};
|
||||||
|
|
||||||
let pool = if num_threads <= 1 {
|
// If num_threads is one, there's no point in creating a thread pool, so
|
||||||
|
// force it to zero.
|
||||||
|
//
|
||||||
|
// We allow developers to force a one-thread pool for testing via a
|
||||||
|
// special environmental variable.
|
||||||
|
if num_threads == 1 {
|
||||||
|
let force_pool = env::var("FORCE_STYLO_THREAD_POOL")
|
||||||
|
.ok().map_or(false, |s| s.parse::<usize>().expect("invalid FORCE_STYLO_THREAD_POOL value") == 1);
|
||||||
|
if !force_pool {
|
||||||
|
num_threads = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let pool = if num_threads < 1 {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
let configuration = rayon::Configuration::new()
|
let configuration = rayon::Configuration::new()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue