From 82b1790df0107755a10f7d0bed2d9df33e2ac4e2 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 7 Jan 2014 12:08:45 +0000 Subject: [PATCH] timeout.rb: current_target * lib/timeout.rb (Timeout::ExitException#target): rename attribute. * lib/timeout.rb (Timeout::ExitException.current_target): extract a method to achieve the target. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/timeout.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/timeout.rb b/lib/timeout.rb index 441f8d4236..672b2d719c 100644 --- a/lib/timeout.rb +++ b/lib/timeout.rb @@ -26,17 +26,21 @@ module Timeout class Error < RuntimeError end class ExitException < ::Exception # :nodoc: - attr_reader :thread + attr_reader :target + + def self.current_target + Thread.current + end def self.catch exc = new - exc.instance_variable_set(:@thread, Thread.current) + exc.instance_variable_set(:@target, current_target) exc.freeze ::Kernel.catch(exc) {yield exc} end def exception(*) - throw(self, caller) if self.thread == Thread.current + throw(self, caller) if self.target == self.class.current_target self end end