From 5b2b080404b9711e8c7f1d06e05b8c97bbdb8fcc Mon Sep 17 00:00:00 2001 From: Dmytro Shteflyuk Date: Wed, 19 Nov 2025 15:24:32 -0500 Subject: [PATCH] ruby: Set TCP_NODELAY on accepted sockets --- lib/rb/lib/thrift/transport/server_socket.rb | 1 + lib/rb/spec/server_socket_spec.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/rb/lib/thrift/transport/server_socket.rb b/lib/rb/lib/thrift/transport/server_socket.rb index 50002324ed2..3b85b89e226 100644 --- a/lib/rb/lib/thrift/transport/server_socket.rb +++ b/lib/rb/lib/thrift/transport/server_socket.rb @@ -43,6 +43,7 @@ def listen def accept unless @handle.nil? sock = @handle.accept + sock.setsockopt(::Socket::IPPROTO_TCP, ::Socket::TCP_NODELAY, 1) trans = Socket.new trans.handle = sock trans diff --git a/lib/rb/spec/server_socket_spec.rb b/lib/rb/spec/server_socket_spec.rb index ec9e550056c..56b3bac7c02 100644 --- a/lib/rb/spec/server_socket_spec.rb +++ b/lib/rb/spec/server_socket_spec.rb @@ -44,6 +44,7 @@ expect(TCPServer).to receive(:new).with(nil, 1234).and_return(handle) @socket.listen sock = double("sock") + expect(sock).to receive(:setsockopt).with(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1) expect(handle).to receive(:accept).and_return(sock) trans = double("Socket") expect(Thrift::Socket).to receive(:new).and_return(trans)