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