From 0bd9ec5d9abf0f092ad3c64c555fca568ea5516e Mon Sep 17 00:00:00 2001 From: ko1 Date: Thu, 20 Apr 2017 15:02:55 +0000 Subject: release monitor correctly. * lib/rubygems/core_ext/kernel_require.rb: sometimes `Kernel.send(:gem, spec.name)` can raise some errors (Gem::MissingSpecError I observed) and this method doesn't release RUBYGEMS_ACTIVATION_MONITOR correctly. This patch fix this problem. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/core_ext/kernel_require.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib/rubygems/core_ext') diff --git a/lib/rubygems/core_ext/kernel_require.rb b/lib/rubygems/core_ext/kernel_require.rb index 71a301c323..3172ef9be6 100755 --- a/lib/rubygems/core_ext/kernel_require.rb +++ b/lib/rubygems/core_ext/kernel_require.rb @@ -44,7 +44,12 @@ module Kernel spec = Gem.find_unresolved_default_spec(path) if spec Gem.remove_unresolved_default_spec(spec) - Kernel.send(:gem, spec.name) + begin + Kernel.send(:gem, spec.name) + rescue Exception + RUBYGEMS_ACTIVATION_MONITOR.exit + raise + end end # If there are no unresolved deps, then we can use just try -- cgit v1.2.3