# File ext/socket/lib/socket.rb, line 114
def bind
sock = Socket.new(self.pfamily, self.socktype, self.protocol)
begin
sock.ipv6only! if self.ipv6?
sock.setsockopt(:SOCKET, :REUSEADDR, 1)
sock.bind(self)
if block_given?
yield sock
else
sock
end
ensure
sock.close if !sock.closed? && (block_given? || $!)
end
end