aboutsummaryrefslogtreecommitdiffstats
path: root/process.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * process.c (rb_exec_fillarg): detect '#' as a meta character.akr2012-06-111-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add comment about meta characters.akr2012-06-111-0/+24
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_proc_exec_n): revert the function removed at r35889.akr2012-06-101-0/+48
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_exec_without_timer_thread): renamed from rb_exec_err.akr2012-06-101-5/+13
| | | | | | | | | | | (rb_exec_err): new stub function to call rb_exec_without_timer_thread. (rb_f_exec): call rb_exec_without_timer_thread. (rb_exec): call rb_exec_without_timer_thread. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_fork): call rb_fork_internal instead of rb_fork_err.akr2012-06-101-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_fork_ruby): call rb_fork_internal directly.akr2012-06-101-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_fork_ruby): new function.akr2012-06-101-3/+9
| | | | | | | | | | | | | (rb_f_fork): use rb_fork_ruby instead of rb_fork. (rb_daemon): ditto. * io.c (pipe_open): use rb_fork_ruby instead of rb_fork. * internal.h (rb_fork_ruby): declared. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (retry_fork): call after_fork except in a child process.akr2012-06-101-8/+9
| | | | | | | (rb_fork_internal): restrict after_fork call condition. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_f_exec): call rb_exec_async_signal_safe except onakr2012-06-101-1/+5
| | | | | | | Mac OS X. cf. the comment in before_exec_non_async_signal_safe. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_fork_internal): call after_fork only unlessakr2012-06-101-1/+2
| | | | | | | | chfunc_is_async_signal_safe. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* update async-signal-safe comments.akr2012-06-101-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_exec_async_signal_safe): exported.akr2012-06-101-1/+1
| | | | | | | | | | | | | | | | | * ext/pty/extconf.rb: modify $INCFLAGS to include internal.h * ext/pty/pty.c: include internal.h. (chfunc): don't call rb_thread_atfork_before_exec. use rb_exec_async_signal_safe instead of rb_f_exec. (establishShell): set up earg. use rb_fork_async_signal_safe instead of rb_fork_err. * internal.h (rb_exec_async_signal_safe): declared. (rb_fork_async_signal_safe): declared. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_f_exec): use rb_exec_arg_prepare.akr2012-06-101-9/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c: split after_exec into async-signal-safe part and rest.akr2012-06-091-7/+20
| | | | | | | | | | | | (after_exec_async_signal_safe): extracted from after_exec. (after_exec_non_async_signal_safe): ditto. (after_exec): call them. (rb_exec_async_signal_safe): call after_exec_async_signal_safe. (rb_exec_err): call after_exec_non_async_signal_safe instead of after_exec. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_fork_internal): initialize exc.akr2012-06-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c: don't use non async-signal-safe functions in a childakr2012-06-091-30/+54
| | | | | | | | | | | | | | | | | | | | | | | | process before exec, for invoking a command. (rb_exec_atfork): call rb_exec_async_signal_safe only. (retry_fork): take chfunc_is_async_signal_safe argument. call before_fork and after_fork only unless chfunc_is_async_signal_safe. (send_child_error): take chfunc_is_async_signal_safe argument. send an exception only unless chfunc_is_async_signal_safe. (recv_child_error): take chfunc_is_async_signal_safe argument. receive an exception only unless chfunc_is_async_signal_safe. (rb_fork_internal): renamed from rb_fork_err and take chfunc_is_async_signal_safe argument. use rb_protect only unless chfunc_is_async_signal_safe. (rb_fork_err): call rb_fork_internal with false as chfunc_is_async_signal_safe. (rb_fork_async_signal_safe): call rb_fork_internal with true as chfunc_is_async_signal_safe. (rb_spawn_process): call rb_fork_async_signal_safe instead of rb_fork_err. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_fork_err): rewrite a complex "if" statement.akr2012-06-091-1/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (before_exec_async_signal_safe): extracted fromakr2012-06-091-3/+15
| | | | | | | | | | | | | 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
* * process.c (retry_fork): rewrite a complex "for" statement byakr2012-06-091-3/+7
| | | | | | | simple statements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (retry_fork): extracted from rb_fork_err.akr2012-06-091-88/+124
| | | | | | | | (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
* update async-signal-safe comments.akr2012-06-091-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_exec_async_signal_safe): extracted from rb_exec_err.akr2012-06-091-8/+14
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* update async-signal-safe comments.akr2012-06-091-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c: simplified because close_others option is alwaysakr2012-06-091-14/+7
| | | | | | | | | | | | | | | | | | | | | | 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
* * process.c (rb_proc_exec): call before_exec() here addition toakr2012-06-091-1/+3
| | | | | | | rb_exec_err. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.nobu2012-06-081-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_exec_err): before_exec() call moved from proc_exec_cmdakr2012-06-081-5/+5
| | | | | | | | 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
* * include/ruby/intern.h (rb_exec_arg_init): declaration changed toakr2012-06-081-1/+2
| | | | | | | | | 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
* * process.c: don't check the availability of FD_CLOEXEC. It shouldakr2012-06-081-14/+0
| | | | | | | | | 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
* add comments.akr2012-06-081-0/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_fork_err): revert r35955. The condition needs !chfuncakr2012-06-081-2/+2
| | | | | | | | 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_exec_err): after_exec() call moved from proc_exec_cmd andakr2012-06-081-6/+5
| | | | | | | | | proc_exec_sh. (rb_proc_exec): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (ARGV_COUNT): unused macro removed.akr2012-06-081-6/+0
| | | | | | | | | | (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
* process.c: child process error statenobu2012-06-081-1/+1
| | | | | | | | * 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, ext/pty/pty.c: status on errorsnobu2012-06-081-1/+4
| | | | | | | | | * 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
* * process.c (rb_fork_err): Fix the conditoin to use rb_protect.akr2012-06-071-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a comment.akr2012-06-061-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* remove wrong comments.akr2012-06-061-3/+3
| | | | | | | 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
* * process.c (proc_exec_cmd) renamed from proc_exec_v.akr2012-06-061-13/+13
| | | | | | | | | | | (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
* * process.c (try_with_sh): please take care of the macro defined byusa2012-06-061-1/+1
| | | | | | | you. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* update async-signal-safe comments.akr2012-06-061-13/+13
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (proc_exec_v): don't call dln_find_exe_r here because itakr2012-06-061-6/+16
| | | | | | | | | | | | | | | 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
* * process.c (try_with_sh): take envp argument.akr2012-06-061-5/+10
| | | | | | | | (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
* * process.c (rb_run_exec_options_err): allocate a temporary buffer forusa2012-06-061-0/+11
| | | | | | | 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_fillarg): check use_shell field before accessingakr2012-06-051-1/+1
| | | | | | | | a union field. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_spawn_process): prog variable is not used for Unix.akr2012-06-051-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* update async-signal-safe comments.akr2012-06-051-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * internal.h (rb_exec_arg_init): change return type to void.akr2012-06-051-9/+11
| | | | | | | | | | | | | | | | | | * 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
* * internal.h (rb_exec_arg): use union to represent command invocationakr2012-06-051-23/+22
| | | | | | | | | | | | 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
* update async-signal-safe comments.akr2012-06-051-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e