* lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): get keys

and fetch values from it to prevent @timeout_info's error
  "can't add a new key into hash during iteration".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2012-04-07 23:41:30 +00:00
Родитель 9ec849ee08
Коммит 7b18633804
2 изменённых файлов: 9 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Sun Apr 8 07:26:40 2012 NARUSE, Yui <naruse@ruby-lang.org>
* lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): get keys
and fetch values from it to prevent @timeout_info's error
"can't add a new key into hash during iteration".
Sun Apr 8 06:51:57 2012 NARUSE, Yui <naruse@ruby-lang.org>
* io.c (io_unread): cast as long the value for extra_max.

Просмотреть файл

@ -175,7 +175,9 @@ module WEBrick
Thread.start{
while true
now = Time.now
@timeout_info.dup.each{|thread, ary|
@timeout_info.keys.each{|thread|
ary = @timeout_info[thread]
next unless ary
ary.dup.each{|info|
time, exception = *info
interrupt(thread, info.object_id, exception) if time < now