aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_lsp_server
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-09-06 18:58:21 +0100
committerAleksey Kladov <[email protected]>2019-09-06 18:58:21 +0100
commit219287a14c4e1d9f72465c81b34bd8cc2e2b2f44 (patch)
tree73d3eaf5d8bfcecc5dca0334f0e015026925cb2c /crates/ra_lsp_server
parent1acd9d5540bf755e87173fe16a803cfe8b2bb500 (diff)
don't deadlock on shutdown
Specifically, when we tear down IO threads, we should take care to dispose connection. closes #1775
Diffstat (limited to 'crates/ra_lsp_server')
-rw-r--r--crates/ra_lsp_server/src/main.rs2
-rw-r--r--crates/ra_lsp_server/src/main_loop.rs4
-rw-r--r--crates/ra_lsp_server/tests/heavy_tests/support.rs2
3 files changed, 4 insertions, 4 deletions
diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs
index d40fed947..852fae027 100644
--- a/crates/ra_lsp_server/src/main.rs
+++ b/crates/ra_lsp_server/src/main.rs
@@ -66,7 +66,7 @@ fn run_server() -> Result<()> {
66 workspace_roots, 66 workspace_roots,
67 initialize_params.capabilities, 67 initialize_params.capabilities,
68 server_config, 68 server_config,
69 &connection, 69 connection,
70 )?; 70 )?;
71 71
72 log::info!("shutting down IO..."); 72 log::info!("shutting down IO...");
diff --git a/crates/ra_lsp_server/src/main_loop.rs b/crates/ra_lsp_server/src/main_loop.rs
index 25fa51b8a..2059f9800 100644
--- a/crates/ra_lsp_server/src/main_loop.rs
+++ b/crates/ra_lsp_server/src/main_loop.rs
@@ -52,7 +52,7 @@ pub fn main_loop(
52 ws_roots: Vec<PathBuf>, 52 ws_roots: Vec<PathBuf>,
53 client_caps: ClientCapabilities, 53 client_caps: ClientCapabilities,
54 config: ServerConfig, 54 config: ServerConfig,
55 connection: &Connection, 55 connection: Connection,
56) -> Result<()> { 56) -> Result<()> {
57 log::info!("server_config: {:#?}", config); 57 log::info!("server_config: {:#?}", config);
58 58
@@ -174,7 +174,7 @@ pub fn main_loop(
174 &pool, 174 &pool,
175 &task_sender, 175 &task_sender,
176 &libdata_sender, 176 &libdata_sender,
177 connection, 177 &connection,
178 &mut world_state, 178 &mut world_state,
179 &mut loop_state, 179 &mut loop_state,
180 event, 180 event,
diff --git a/crates/ra_lsp_server/tests/heavy_tests/support.rs b/crates/ra_lsp_server/tests/heavy_tests/support.rs
index 89f65cef4..86073b57d 100644
--- a/crates/ra_lsp_server/tests/heavy_tests/support.rs
+++ b/crates/ra_lsp_server/tests/heavy_tests/support.rs
@@ -118,7 +118,7 @@ impl Server {
118 experimental: None, 118 experimental: None,
119 }, 119 },
120 ServerConfig { with_sysroot, ..ServerConfig::default() }, 120 ServerConfig { with_sysroot, ..ServerConfig::default() },
121 &connection, 121 connection,
122 ) 122 )
123 .unwrap() 123 .unwrap()
124 }) 124 })