summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-07 23:41:30 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-07 23:41:30 +0000
commit7b18633804c606e8bcccfbb44e7d7b795e777ea6 (patch)
tree8e386a27c2a918e9a0920804b4ebfdca974aa98e
parent9ec849ee085393c2dc08dc07616184e74d81a3b5 (diff)
* 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
-rw-r--r--ChangeLog6
-rw-r--r--lib/webrick/utils.rb4
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 966b72fcbb..de652b2497 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/lib/webrick/utils.rb b/lib/webrick/utils.rb
index d9c39360ee..eab2375968 100644
--- a/lib/webrick/utils.rb
+++ b/lib/webrick/utils.rb
@@ -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