Feature #17528
openMake Addrinfo.getaddrinfo fall back to Timeout.timeout for :resolv_timeout
Description
Currently, Addrinfo.getaddrinfo
ignores the :resolv_timeout
option if we are on a system without getaddrinfo_a
. It would be great if instead it would fall back to using Timeout.timeout
.
That way, we could get rid of a lot of the usage of Timeout.timeout
for systems that do have getaddrinfo_a
. For example, for Net::HTTP#connect we could easily then do something like this: https://github.com/ruby/ruby/compare/master...mohamedhafez:patch-3?diff=split.
The motivation for this is that the usage of Timeout.timeout is inherently unsafe, and it would be great to stop using it where we can (see https://www.mikeperham.com/2015/05/08/timeout-rubys-most-dangerous-api/ and http://blog.headius.com/2008/02/ruby-threadraise-threadkill-timeoutrb.html)