diff --git a/src/electrum/server.rs b/src/electrum/server.rs index 81b3c020a..bf8b2818c 100644 --- a/src/electrum/server.rs +++ b/src/electrum/server.rs @@ -793,6 +793,7 @@ impl RPC { stream .set_nonblocking(false) .expect("failed to set connection as blocking"); + stream.set_nodelay(true).expect("failed to set TCP_NODELAY"); if acceptor.send(Some((stream, addr))).is_err() { break; // receiver dropped, server is shutting down } diff --git a/src/rest.rs b/src/rest.rs index 6f6c98950..c0ab6954a 100644 --- a/src/rest.rs +++ b/src/rest.rs @@ -601,7 +601,10 @@ async fn run_server(config: Arc, query: Arc, rx: oneshot::Receive tokio::select! { result = listener.accept() => { match result { - Ok((stream, _)) => spawn_conn(stream, Arc::clone(&query), Arc::clone(&config), &graceful), + Ok((stream, _)) => { + stream.set_nodelay(true).expect("failed to set TCP_NODELAY"); + spawn_conn(stream, Arc::clone(&query), Arc::clone(&config), &graceful); + } Err(e) => warn!("accept error: {}", e), } }