From 27a70a40c2f564309f59caa6e29b29d11e392aea Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Sun, 14 Jul 2024 13:36:43 -0400 Subject: [PATCH] Disallow nested `ignore_interrupts`. --- Library/Homebrew/extend/kernel.rb | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/Library/Homebrew/extend/kernel.rb b/Library/Homebrew/extend/kernel.rb index 0fed83aafd..e94a33f919 100644 --- a/Library/Homebrew/extend/kernel.rb +++ b/Library/Homebrew/extend/kernel.rb @@ -353,13 +353,9 @@ module Kernel def ignore_interrupts(quiet: false) IGNORE_INTERRUPTS_MUTEX.synchronize do - # rubocop:disable Style/GlobalVars - $ignore_interrupts_nesting_level = 0 unless defined?($ignore_interrupts_nesting_level) - $ignore_interrupts_nesting_level += 1 - - $ignore_interrupts_interrupted = false unless defined?($ignore_interrupts_interrupted) + interrupted = false old_sigint_handler = trap(:INT) do - $ignore_interrupts_interrupted = true + interrupted = true unless quiet $stderr.print "\n" @@ -372,13 +368,8 @@ module Kernel ensure trap(:INT, old_sigint_handler) - $ignore_interrupts_nesting_level -= 1 - if $ignore_interrupts_nesting_level == 0 && $ignore_interrupts_interrupted - $ignore_interrupts_interrupted = false - raise Interrupt - end + raise Interrupt if interrupted end - # rubocop:enable Style/GlobalVars end end