summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/rubyspec/core/process/fixtures/kill.rb11
1 files 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