From 22908245effa361d8deffd50230254f0fa18e06b Mon Sep 17 00:00:00 2001 From: normal Date: Tue, 17 Jan 2017 03:31:57 +0000 Subject: rinda/ring.rb (make_socket): do not keep socket on failures This prevents leaked FD warnings on test/rinda/test_rinda.rb when testing on a machine without multicast support. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rinda/ring.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/rinda/ring.rb b/lib/rinda/ring.rb index 9b3f13eb93..d82ecabfcc 100644 --- a/lib/rinda/ring.rb +++ b/lib/rinda/ring.rb @@ -135,7 +135,6 @@ module Rinda socket = Socket.new(addrinfo.pfamily, addrinfo.socktype, addrinfo.protocol) - @sockets << socket if addrinfo.ipv4_multicast? or addrinfo.ipv6_multicast? then if Socket.const_defined?(:SO_REUSEPORT) then @@ -166,6 +165,11 @@ module Rinda end socket + rescue + socket = socket.close if socket + raise + ensure + @sockets << socket if socket end ## -- cgit v1.2.3