Skip to content

Commit df1bb22

Browse files
committed
Fix to wait jsonrpc-server closing
1 parent cea31a2 commit df1bb22

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

codechain/run_node.rs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -328,23 +328,23 @@ pub fn run_node(matches: &ArgMatches) -> Result<(), String> {
328328
block_sync: maybe_sync_sender,
329329
});
330330

331-
let _rpc_server = {
331+
let rpc_server = {
332332
if !config.rpc.disable.unwrap() {
333333
Some(rpc_http_start(config.rpc_http_config(), config.rpc.enable_devel_api, &*rpc_apis_deps)?)
334334
} else {
335335
None
336336
}
337337
};
338338

339-
let _ipc_server = {
339+
let ipc_server = {
340340
if !config.ipc.disable.unwrap() {
341341
Some(rpc_ipc_start(&config.rpc_ipc_config(), config.rpc.enable_devel_api, &*rpc_apis_deps)?)
342342
} else {
343343
None
344344
}
345345
};
346346

347-
let _ws_server = {
347+
let ws_server = {
348348
if !config.ws.disable.unwrap() {
349349
Some(rpc_ws_start(&config.rpc_ws_config(), config.rpc.enable_devel_api, &*rpc_apis_deps)?)
350350
} else {
@@ -376,5 +376,18 @@ pub fn run_node(matches: &ArgMatches) -> Result<(), String> {
376376

377377
wait_for_exit();
378378

379+
if let Some(server) = rpc_server {
380+
server.close_handle().close();
381+
server.wait();
382+
}
383+
if let Some(server) = ipc_server {
384+
server.close_handle().close();
385+
server.wait();
386+
}
387+
if let Some(server) = ws_server {
388+
server.close_handle().close();
389+
server.wait().map_err(|err| format!("Error while closing jsonrpc ws server: {}", err))?;
390+
}
391+
379392
Ok(())
380393
}

0 commit comments

Comments
 (0)