From 118a2113c148ce6806732094c70fb030139b26ac Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 29 May 2019 14:35:02 +0300 Subject: trigger garbage collection *after* requests, not before --- crates/ra_lsp_server/src/main_loop.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'crates/ra_lsp_server/src') diff --git a/crates/ra_lsp_server/src/main_loop.rs b/crates/ra_lsp_server/src/main_loop.rs index 16c05e4c3..d406faf6c 100644 --- a/crates/ra_lsp_server/src/main_loop.rs +++ b/crates/ra_lsp_server/src/main_loop.rs @@ -171,7 +171,6 @@ fn main_loop_inner( let (libdata_sender, libdata_receiver) = unbounded(); loop { let _p = profile("loop_turn"); - state.maybe_collect_garbage(); log::trace!("selecting"); let event = select! { @@ -193,13 +192,17 @@ fn main_loop_inner( } let mut state_changed = false; match event { - Event::Task(task) => on_task(task, msg_sender, pending_requests), + Event::Task(task) => { + on_task(task, msg_sender, pending_requests); + state.maybe_collect_garbage(); + } Event::Vfs(task) => { state.vfs.write().handle_task(task); state_changed = true; } Event::Lib(lib) => { state.add_lib(lib); + state.maybe_collect_garbage(); in_flight_libraries -= 1; } Event::Msg(msg) => match msg { -- cgit v1.2.3