From 3c491a92f6fbfecc065f7687c51c7d6d52a38883 Mon Sep 17 00:00:00 2001 From: naruse Date: Sat, 31 Mar 2012 13:30:10 +0000 Subject: [PATCH] * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): dup to prevent @timeout_info's "can't add a new key into hash during iteration". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/webrick/utils.rb | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 1f55a98a9d..07428626b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Mar 31 21:39:45 2012 NARUSE, Yui + + * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): dup to prevent + @timeout_info's "can't add a new key into hash during iteration". + Sat Mar 31 14:22:59 2012 Nobuyoshi Nakada * hash.c (hash_default_value): extract from rb_hash_aref(), to be diff --git a/lib/webrick/utils.rb b/lib/webrick/utils.rb index 157c530cc9..d9c39360ee 100644 --- a/lib/webrick/utils.rb +++ b/lib/webrick/utils.rb @@ -175,7 +175,7 @@ module WEBrick Thread.start{ while true now = Time.now - @timeout_info.each{|thread, ary| + @timeout_info.dup.each{|thread, ary| ary.dup.each{|info| time, exception = *info interrupt(thread, info.object_id, exception) if time < now