From 525844f2578fbaf7b06c5bf7a1f36741fa149fbb Mon Sep 17 00:00:00 2001 From: eregon Date: Wed, 10 May 2017 14:18:23 +0000 Subject: [PATCH] Use the Mutex to know whether we entered the signal handler in Process#kill specs git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- spec/rubyspec/core/process/fixtures/kill.rb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/spec/rubyspec/core/process/fixtures/kill.rb b/spec/rubyspec/core/process/fixtures/kill.rb index abc8a2db2d..00b5223b90 100644 --- a/spec/rubyspec/core/process/fixtures/kill.rb +++ b/spec/rubyspec/core/process/fixtures/kill.rb @@ -9,16 +9,13 @@ ruby_exe = ARGV.shift # instead, which will likely abort the specs process. Process.setsid if scenario -signaled = false mutex = Mutex.new Signal.trap(:TERM) do if mutex.try_lock - unless signaled - signaled = true - STDOUT.puts "signaled" - STDOUT.flush - end + STDOUT.puts "signaled" + STDOUT.flush + $signaled = true end end @@ -46,4 +43,4 @@ if scenario system(*ruby_exe.split(' '), "-e", code) end -sleep 0.001 until signaled +sleep 0.001 until mutex.locked? and $signaled