[ruby-core:68837] [Ruby trunk - Feature #11056] [PATCH] lib/net/*: use io/wait methods instead of IO.select

From: nobu@...
Date: 2015-04-11 02:06:33 UTC
List: ruby-core #68837
Issue #11056 has been updated by Nobuyoshi Nakada.


`test-all` failed on OSX.

~~~
  1) Failure:
HTTPSProxyTest#test_https_proxy_authentication [/Users/nobu/src/ruby/trunk/src/test/net/http/test_https_proxy.rb:42]:
exceptions on 1 threads:
#<Thread:0x00000101990758@/Users/nobu/src/ruby/trunk/src/test/net/http/test_https_proxy.rb:17 dead>:
/Users/nobu/src/ruby/trunk/src/lib/net/protocol.rb:157:in `rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)
	from /Users/nobu/src/ruby/trunk/src/lib/net/protocol.rb:135:in `readuntil'
	from /Users/nobu/src/ruby/trunk/src/lib/net/protocol.rb:145:in `readline'
	from /Users/nobu/src/ruby/trunk/src/lib/net/http/response.rb:39:in `read_status_line'
	from /Users/nobu/src/ruby/trunk/src/lib/net/http/response.rb:28:in `read_new'
	from /Users/nobu/src/ruby/trunk/src/lib/net/http.rb:920:in `connect'
	from /Users/nobu/src/ruby/trunk/src/lib/net/http.rb:863:in `do_start'
	from /Users/nobu/src/ruby/trunk/src/lib/net/http.rb:858:in `start'
	from /Users/nobu/src/ruby/trunk/src/test/net/http/test_https_proxy.rb:23:in `block (2 levels) in test_https_proxy_authentication'
~~~

----------------------------------------
Feature #11056: [PATCH] lib/net/*: use io/wait methods instead of IO.select
https://bugs.ruby-lang.org/issues/11056#change-52100

* Author: Eric Wong
* Status: Open
* Priority: Normal
* Assignee: Eric Wong
----------------------------------------
lib/net/*: use io/wait methods instead of IO.select

io/wait is expected to work on any platform where sockets are
supported.  io/wait methods uses fewer allocations and uses
ppoll internally under Linux for better performance on
high-numbered FDs.

[ruby-core:35572] describes the performance advantage of ppoll
on high-numbered FDs.

* lib/net/protocol.rb (rbuf_fill): use IO#wait_*able
* lib/net/http/generic_request.rb (wait_for_continue): ditto


I'll commit in a few days unless there are objections.


---Files--------------------------------
0001-lib-net-use-io-wait-methods-instead-of-IO.select.patch (2.3 KB)


-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next