summaryrefslogtreecommitdiff
path: root/process.c
AgeCommit message (Collapse)Author
2012-06-09* process.c (before_exec_async_signal_safe): extracted fromakr
before_exec. (before_exec_non_async_signal_safe): ditto. (before_exec): call before_exec_async_signal_safe and before_exec_non_async_signal_safe. (rb_exec_async_signal_safe): call before_exec_async_signal_safe. (rb_exec_err): call before_exec_non_async_signal_safe instead of before_exec. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-09* process.c (retry_fork): rewrite a complex "for" statement byakr
simple statements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-09* process.c (retry_fork): extracted from rb_fork_err.akr
(send_child_error): ditto. (recv_child_error): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-09update async-signal-safe comments.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-09* process.c (rb_exec_async_signal_safe): extracted from rb_exec_err.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-09update async-signal-safe comments.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-09* process.c: simplified because close_others option is alwaysakr
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
2012-06-09* process.c (rb_proc_exec): call before_exec() here addition toakr
rb_exec_err. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08* remove trailing spaces.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08* process.c (rb_exec_err): before_exec() call moved from proc_exec_cmdakr
and proc_exec_sh. (rb_proc_exec): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08* include/ruby/intern.h (rb_exec_arg_init): declaration changed toakr
return a value. * process.c (rb_exec_arg_init): return a value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08* process.c: don't check the availability of FD_CLOEXEC. It shouldakr
be available if fork() is available. * io.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08add comments.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08* process.c (rb_fork_err): revert r35955. The condition needs !chfuncakr
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
2012-06-08* process.c (rb_exec_err): after_exec() call moved from proc_exec_cmd andakr
proc_exec_sh. (rb_proc_exec): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08* process.c (ARGV_COUNT): unused macro removed.akr
(ARGV_SIZE): ditto. (ALLOC_ARGV): ditto. (ALLOC_ARGV_WITH_STR): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08process.c: child process error statenobu
* 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
2012-06-08process.c, ext/pty/pty.c: status on errorsnobu
* 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
2012-06-07* process.c (rb_fork_err): Fix the conditoin to use rb_protect.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06fix a comment.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06remove wrong comments.akr
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
2012-06-06* process.c (proc_exec_cmd) renamed from proc_exec_v.akr
(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
2012-06-06* process.c (try_with_sh): please take care of the macro defined byusa
you. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06update async-signal-safe comments.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06* process.c (proc_exec_v): don't call dln_find_exe_r here because itakr
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
2012-06-06* process.c (try_with_sh): take envp argument.akr
(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
2012-06-06* process.c (rb_run_exec_options_err): allocate a temporary buffer forusa
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
2012-06-05* process.c (rb_exec_fillarg): check use_shell field before accessingakr
a union field. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05* process.c (rb_spawn_process): prog variable is not used for Unix.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05update async-signal-safe comments.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05* internal.h (rb_exec_arg_init): change return type to void.akr
* 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
2012-06-05* internal.h (rb_exec_arg): use union to represent command invocationakr
with/without shell. * process.c: follow the rb_exec_arg change. * io.c (pipe_open): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05update async-signal-safe comments.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05* process.c (rb_exec_arg_fixup): allocate a temporary buffer forakr
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
2012-06-05* process.c (strtok): declaration removed because it is not used.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05* process.c (proc_spawn): don't detect simple command line hereakr
because rb_exec_fillarg already did. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05* process.c (rb_exec_fillarg): bail out a loop eagerly.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05* process.c: add comments about async-signal-safe.akr
* io.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04add comment.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04* process.c (rb_exec_fillarg): allocate one more element beforeakr
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
2012-06-04* internal.h (ARGVSTR2ARGC): defined.akr
(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
2012-06-04merge definitionsnobu
* process.c (proc_exec_v, rb_proc_exec_e): merge definitions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04unused parameternobu
* process.c (proc_spawn_n): remove unused parameter. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04unused variablesnobu
* 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
2012-06-04* process.c (rb_exec_err): should preserve errno.usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04* process.c (rb_run_exec_options_err): restore save_env() call forusa
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
2012-06-04* io.c (pipe_open): follow up changes in r35889.usa
* 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
2012-06-03* process.c (rb_spawn_process): fix for Windows. not tested.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-03* process.c (rb_proc_exec_e): don't use ISSPACE(). \f, \r and \vakr
are not word separator in Bourne shell. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-03* include/ruby/intern.h (rb_exec_arg): remove argc and argv fields.akr
add use_shell, argv_str and argv_buf fields. * process.c (rb_proc_exec_e): don't split shell command line arguments here to avoid memory allocation in a child process. (rb_exec_fillarg): split shell command line arguments here. (proc_exec_v): takes argv_str argument instead of argv. (rb_proc_exec_ne): removed. (rb_proc_exec_n): removed. (rb_run_exec_options_err): don't initialize the removed fields. (rb_exec_err): don't initialize the removed fields. call proc_exec_v directly instead of rb_proc_exec_ne. (rb_spawn_process): use use_shell field. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e