PR issuse resolved

This commit is contained in:
Sergey Parilin 2019-04-02 17:52:04 +03:00
parent ef02c3c038
commit 9b73f80959
9 changed files with 30 additions and 10 deletions

View file

@ -3,6 +3,7 @@ use flexi_logger::{Duplicate, Logger};
use gen_lsp_server::{run_server, stdio_transport};
use ra_lsp_server::{Result, InitializationOptions};
use ra_prof;
fn main() -> Result<()> {
::std::env::set_var("RUST_BACKTRACE", "short");
@ -11,6 +12,15 @@ fn main() -> Result<()> {
Ok(ref v) if v == "1" => logger.log_to_file().directory("log").start()?,
_ => logger.start()?,
};
let prof_depth = match ::std::env::var("RA_PROFILE_DEPTH") {
Ok(ref d) => d.parse()?,
_ => 0,
};
let profile_allowed = match ::std::env::var("RA_PROFILE") {
Ok(ref p) => p.split(";").map(String::from).collect(),
_ => Vec::new(),
};
ra_prof::set_filter(ra_prof::Filter::new(prof_depth, profile_allowed));
log::info!("lifecycle: server started");
match ::std::panic::catch_unwind(main_inner) {
Ok(res) => {

View file

@ -24,6 +24,7 @@ use crate::{
Result,
InitializationOptions,
};
use ra_prof::profile;
#[derive(Debug, Fail)]
#[fail(display = "Language Server request failed with {}. ({})", code, message)]
@ -181,7 +182,7 @@ fn main_loop_inner(
recv(libdata_receiver) -> data => Event::Lib(data.unwrap())
};
log::info!("loop_turn = {:?}", event);
let start = std::time::Instant::now();
let _p = profile("loop_turn");
let mut state_changed = false;
match event {
Event::Task(task) => on_task(task, msg_sender, pending_requests),
@ -235,10 +236,9 @@ fn main_loop_inner(
in_flight_libraries += 1;
let sender = libdata_sender.clone();
pool.execute(move || {
let start = ::std::time::Instant::now();
log::info!("indexing {:?} ... ", root);
let _p = profile(&format!("indexed {:?}", root));
let data = LibraryData::prepare(root, files);
log::info!("indexed {:?} {:?}", start.elapsed(), root);
sender.send(data).unwrap();
});
}
@ -266,7 +266,6 @@ fn main_loop_inner(
subs.subscriptions(),
)
}
log::info!("loop_turn = {:?}", start.elapsed());
}
}