This change fixes a bug in which specifying 0 for timeout-related options (such as the `timeout` option of `Addrinfo.getaddrinfo`) incorrectly results in an infinite wait. (This change overwrites https://github.com/ruby/ruby/pull/15626 .)
TCPSocket.new
Socket.tcp
rb_ary_new3
BasicSocket
rb_io_blocking_region
sockaddr_un
open_timeout