mirror of
https://github.com/ruby/ruby.git
synced 2025-09-20 02:53:57 +02:00
* include/ruby/win32.h (rb_w32_aspawn_flags): add the declaration of
new function. * process.c (enum): add EXEC_OPTION_PGROUP and move the position above for the usage in proc_spawn_n(). * process.c (proc_spawn_n): add an argument to pass new option `new_pgroup`. The option specifies CREATE_NEW_PROCESS_GROUP flag to CreateProcessW(). This flag is necessary for the usage of Process.kill on the subprocess on Windows. * process.c (rb_exec_arg_addopt): ditto. * process.c (rb_spawn_process): ditto. * process.c (documentation for rb_f_spawn): add documentation for new option `new_pgroup` of spawn. * test/ruby/test_process.rb (TestProcess#test_execopts_new_pgroup): add tests for option `new_pgroup`. * test/ruby/test_thread.rb (TestThreadGroup#test_thread_timer_and_interrupt): add option `new_pgroup: true` to spawn on Windows. It's needed for Process.kill on a subprocess. * win32/win32.c (CreateChild): add an argument to pass dwCreationFlags of CreateProcessW(). * win32/win32.c (rb_w32_spawn): ditto. * win32/win32.c (rb_w32_aspawn_flags): add new function to pass dwCreationFlags. * win32/win32.c (rb_w32_aspawn): refactor to move the content to rb_w32_aspawn_flags(). [ruby-core:43245][Bug #6131] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
fc83ebb037
commit
42109a02f0
6 changed files with 117 additions and 26 deletions
|
@ -1360,4 +1360,13 @@ class TestProcess < Test::Unit::TestCase
|
|||
assert(io.close_on_exec?)
|
||||
}
|
||||
end
|
||||
|
||||
def test_execopts_new_pgroup
|
||||
return unless windows?
|
||||
|
||||
assert_nothing_raised { system(*TRUECOMMAND, :new_pgroup=>true) }
|
||||
assert_nothing_raised { system(*TRUECOMMAND, :new_pgroup=>false) }
|
||||
assert_nothing_raised { spawn(*TRUECOMMAND, :new_pgroup=>true) }
|
||||
assert_nothing_raised { IO.popen([*TRUECOMMAND, :new_pgroup=>true]) {} }
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue