ruby-changes:39522
From: usa <ko1@a...>
Date: Mon, 17 Aug 2015 16:55:33 +0900 (JST)
Subject: [ruby-changes:39522] usa:r51603 (ruby_2_1): merge revision(s) 51213: [Backport #11344]
usa 2015-08-17 16:55:26 +0900 (Mon, 17 Aug 2015) New Revision: 51603 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=51603 Log: merge revision(s) 51213: [Backport #11344] * lib/timeout.rb (ExitException): removed internal exception class and use Timeout::Error instead, as using throw/catch to isolate each timeouts now. [ruby-dev:49179] [Bug #11344] Modified directories: branches/ruby_2_1/ Modified files: branches/ruby_2_1/ChangeLog branches/ruby_2_1/lib/timeout.rb branches/ruby_2_1/test/test_timeout.rb branches/ruby_2_1/version.h Index: ruby_2_1/ChangeLog =================================================================== --- ruby_2_1/ChangeLog (revision 51602) +++ ruby_2_1/ChangeLog (revision 51603) @@ -1,3 +1,15 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ChangeLog#L1 +Mon Aug 17 16:51:45 2015 CHIKANAGA Tomoyuki <nagachika@r...> + + * lib/timeout.rb (ExitException): leave Timeout::ExitException as an + alias of Timeout::Error for backward compatibility in stable branch. + [ruby-dev:49179] [Bug #11344] + +Mon Aug 17 16:51:45 2015 Nobuyoshi Nakada <nobu@r...> + + * lib/timeout.rb (ExitException): removed internal exception class + and use Timeout::Error instead, as using throw/catch to isolate + each timeouts now. [ruby-dev:49179] [Bug #11344] + Mon Aug 17 16:49:00 2015 Kazuhiro NISHIYAMA <zn@m...> * test/net/http/test_httpresponse.rb Index: ruby_2_1/lib/timeout.rb =================================================================== --- ruby_2_1/lib/timeout.rb (revision 51602) +++ ruby_2_1/lib/timeout.rb (revision 51603) @@ -24,8 +24,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_1/lib/timeout.rb#L24 module Timeout # Raised by Timeout#timeout when the block times out. class Error < RuntimeError - end - class ExitException < ::Exception # :nodoc: attr_reader :thread def self.catch(*args) @@ -48,6 +46,7 @@ module Timeout https://github.com/ruby/ruby/blob/trunk/ruby_2_1/lib/timeout.rb#L46 self end end + ExitException = Error # :stopdoc: THIS_FILE = /\A#{Regexp.quote(__FILE__)}:/o @@ -103,7 +102,7 @@ module Timeout https://github.com/ruby/ruby/blob/trunk/ruby_2_1/lib/timeout.rb#L102 bt = e.backtrace end else - bt = ExitException.catch(message, &bl) + bt = Error.catch(message, &bl) end rej = /\A#{Regexp.quote(__FILE__)}:#{__LINE__-4}\z/o bt.reject! {|m| rej =~ m} Index: ruby_2_1/version.h =================================================================== --- ruby_2_1/version.h (revision 51602) +++ ruby_2_1/version.h (revision 51603) @@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_1/version.h#L1 #define RUBY_VERSION "2.1.7" #define RUBY_RELEASE_DATE "2015-08-17" -#define RUBY_PATCHLEVEL 386 +#define RUBY_PATCHLEVEL 387 #define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_MONTH 8 Index: ruby_2_1/test/test_timeout.rb =================================================================== --- ruby_2_1/test/test_timeout.rb (revision 51602) +++ ruby_2_1/test/test_timeout.rb (revision 51603) @@ -63,9 +63,9 @@ class TestTimeout < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/ruby_2_1/test/test_timeout.rb#L63 end def test_exit_exception - assert_raise_with_message(Timeout::ExitException, "boon") do - Timeout.timeout(10, Timeout::ExitException) do - raise Timeout::ExitException, "boon" + assert_raise_with_message(Timeout::Error, "boon") do + Timeout.timeout(10, Timeout::Error) do + raise Timeout::Error, "boon" end end end @@ -80,4 +80,21 @@ class TestTimeout < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/ruby_2_1/test/test_timeout.rb#L80 Timeout.timeout(0.01) {e.next} end end + + def test_handle_interrupt + bug11344 = '[ruby-dev:49179] [Bug #11344]' + ok = false + assert_raise(Timeout::Error) { + Thread.handle_interrupt(Timeout::Error => :never) { + Timeout.timeout(0.01) { + sleep 0.2 + ok = true + Thread.handle_interrupt(Timeout::Error => :on_blocking) { + sleep 0.2 + } + } + } + } + assert(ok, bug11344) + end end Property changes on: ruby_2_1 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r51213 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/