enabled by default.
(rb_f_exec): don't need to set the option.
(rb_exec_arg_prepare): don't need to set the option. don't need
default_close_others argument.
(rb_spawn_internal): don't need to give default_close_others
argument for rb_exec_arg_prepare. don't need default_close_others
argument.
(rb_spawn_err): don't need to give default_close_others
argument for rb_spawn_internal.
(rb_spawn): don't need to give default_close_others
argument for rb_spawn_internal.
(rb_f_system): don't need to give default_close_others argument for
rb_spawn_internal.
(rb_f_spawn): don't need to give default_close_others argument for
rb_exec_arg_prepare.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to close ep[0] and ep[1]. The catched exception is re-raised
immediately after that if status is not NULL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c (rb_fork_err): error state in the child process is prior
to exceptions in proc_syswait().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c (rb_fork_err): determine status on errors.
* ext/pty/pty.c (establishShell): reraise exception if something
raised during sleep.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
earg is processed by surrounding rb_run_exec_options_err call.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(proc_exec_sh): renamed from rb_proc_exec_e.
(proc_spawn_cmd_internal): renamed from proc_spawn_v.
(proc_spawn_cmd): renamed from proc_spawn_n.
(proc_spawn_sh): renamed from proc_spawn.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is not async-signal-safe and proc_exec_v is called in a child
process.
command_abspath field of rb_exec_arg.
(rb_exec_fillarg): call dln_find_exe_r and set command_abspath.
(rb_exec_err): Give the absolute path of the invoking command for
proc_exec_v, instead of the command name.
* internal.h: add command_abspath field for rb_exec_arg.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(exec_with_sh): ditto. use it for execve.
(proc_exec_v): provide envp for try_with_sh.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
run_exec_dup2() for restoring fds on non-fork environments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c (rb_exec_arg_init): don't return a value.
(rb_exec_arg_prepare): ditto.
(rb_spawn_process): don't take the prog argument. extract the
information from earg.
(rb_spawn_internal): follow rb_spawn_process change.
(rb_f_spawn): ditto.
* io.c (pipe_open): don't take the prog argument. extract the
information from eargp.
(pipe_open_v): follow pipe_open change.
(pipe_open_s): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
run_exec_dup2 here because it should be async-signal-safe.
(run_exec_dup2): use the temporary buffer.
(run_exec_dup2_tmpbuf_size): new function.
* include/ruby/intern.h (rb_exec_arg): add dup2_tmpbuf field.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
beginning in argv_str for try_with_sh.
* internal.h (ARGVSTR2ARGC): adjust for the above change.
(ARGVSTR2ARGV): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(ARGVSTR2ARGV): defined.
* process.c (proc_exec_v): use ARGVSTR2ARGV.
(rb_spawn_process): use ARGVSTR2ARGC and ARGVSTR2ARGV.
* io.c (pipe_open): use ARGVSTR2ARGV.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c (pipe_open): argc and argv are not used on win32.
* process.c (rb_spawn_process): remove already useless variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
non-fork environments.
* process.c (rb_exec_err): restore environments after the failure of
exec to fix [ruby-core:44093] [Bug #6249] on non-fork environments
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c (proc_spawn_n): now uses char ** instead of VALUE *.
* process.c (rb_spawn_process): prog is now VALUE of String, not char *.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e