Auto merge of #16035 - emilio:parallel-log-no-fun, r=upsuper

stylo: Sequentialize binding generation if logging is enabled.

Otherwise the log is useless, and it's even slower than in parallel mode due to
the high lock contention.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16035)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-03-20 03:43:26 -07:00 committed by GitHub
commit 9fdebf0934

View file

@ -772,11 +772,15 @@ mod bindings {
pub fn generate() { pub fn generate() {
use self::common::*; use self::common::*;
use std::fs; use std::{env, fs, thread};
use std::thread;
println!("cargo:rerun-if-changed=build_gecko.rs"); println!("cargo:rerun-if-changed=build_gecko.rs");
fs::create_dir_all(&*OUTDIR_PATH).unwrap(); fs::create_dir_all(&*OUTDIR_PATH).unwrap();
bindings::setup_logging(); bindings::setup_logging();
if env::var("STYLO_BUILD_LOG").is_ok() {
bindings::generate_structs(BuildType::Debug);
bindings::generate_structs(BuildType::Release);
bindings::generate_bindings();
} else {
let threads = vec![ let threads = vec![
thread::spawn(|| bindings::generate_structs(BuildType::Debug)), thread::spawn(|| bindings::generate_structs(BuildType::Debug)),
thread::spawn(|| bindings::generate_structs(BuildType::Release)), thread::spawn(|| bindings::generate_structs(BuildType::Release)),
@ -785,4 +789,5 @@ pub fn generate() {
for t in threads.into_iter() { for t in threads.into_iter() {
t.join().unwrap(); t.join().unwrap();
} }
}
} }