summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2025-04-04 15:21:11 +0900
committerNobuyoshi Nakada <[email protected]>2025-04-04 16:24:49 +0900
commitcec45aedb5ce7cf9f263421712ad5abcf6404380 (patch)
treecfddfe9882e24f3ae389c5303ada35510ec19045
parentd22e7660427e1e9929e8444135199b5c3e731246 (diff)
Cannot send signal to process group on Windows
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/13069
-rw-r--r--tool/test-bundled-gems.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/tool/test-bundled-gems.rb b/tool/test-bundled-gems.rb
index 133d603c42..819f466573 100644
--- a/tool/test-bundled-gems.rb
+++ b/tool/test-bundled-gems.rb
@@ -83,14 +83,16 @@ File.foreach("#{gem_dir}/bundled_gems") do |line|
if /mingw|mswin/ =~ RUBY_PLATFORM
timeouts.delete(:TERM) # Inner process signal on Windows
group = :new_pgroup
+ pg = ""
else
group = :pgroup
+ pg = "-"
end
pid = Process.spawn(test_command, group => true)
timeouts.each do |sig, sec|
if sig
puts "Sending #{sig} signal"
- Process.kill("-#{sig}", pid)
+ Process.kill("#{pg}#{sig}", pid)
end
begin
break Timeout.timeout(sec) {Process.wait(pid)}
@@ -98,7 +100,7 @@ File.foreach("#{gem_dir}/bundled_gems") do |line|
end
rescue Interrupt
exit_code = Signal.list["INT"]
- Process.kill("-KILL", pid)
+ Process.kill("#{pg}KILL", pid)
Process.wait(pid)
break
end