From: Koichi Sasada Date: 2012-02-25T14:09:46+09:00 Subject: [ruby-core:42893] [ruby-trunk - Bug #5765] [PATCH] modernize Timeout usage in net/{http,pop,smtp,telnet} Issue #5765 has been updated by Koichi Sasada. Any progress? I think it is good timing that you become a committer :) (I'm sorry if you already are) ---------------------------------------- Bug #5765: [PATCH] modernize Timeout usage in net/{http,pop,smtp,telnet} https://bugs.ruby-lang.org/issues/5765 Author: Eric Wong Status: Open Priority: Low Assignee: Category: lib Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2011-12-14 trunk 34045) [x86_64-linux] Object#timeout is deprecated, so use Timeout.timeout instead Additionally, rely on raising Timeout::Error instead of temporary Class object. Using a temporary Class object only benefits nested timeouts, but the code paths in net/* do not nest timeouts. Unfortunately, any performance benefit of avoiding temporary Class objects is nullified here because Errno::EAGAIN is extended with IO::WaitReadable or IO::WaitWritable: https://bugs.ruby-lang.org/issues/5138 A better version of this patch would use timeouts via select() when handling DNS lookup and non-blocking connect(). That requires more effort to deal with hostnames that resolve to multiple addresses, so we'll revisit that later. This change is also pullable: git pull git://bogomips.org/ruby modern-timeout -- http://bugs.ruby-lang.org/