diff options
author | ngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-10 11:27:43 +0000 |
---|---|---|
committer | ngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-10 11:27:43 +0000 |
commit | 4d23a784f5b001450715ef1d44ae2ef9fd06902b (patch) | |
tree | a5c39718c3dfb256617862ee86ea02b8b293b2b5 /process.c | |
parent | d8f628e582cb81c212979b186638ce69f1bd953e (diff) |
* process.c (rb_f_exec): rb_exec_without_timer_thread should be
used on every OS, not only on Mac OS X or Haiku, to prevent
timer thread communications using file descriptor 3 after
setting redirection of the fd 3 before calling exec.
[Bug #11336] [ruby-core:69886]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'process.c')
-rw-r--r-- | process.c | 10 |
1 files changed, 0 insertions, 10 deletions
@@ -2473,9 +2473,7 @@ rb_execarg_parent_end(VALUE execarg_obj) RB_GC_GUARD(execarg_obj); } -#if defined(__APPLE__) || defined(__HAIKU__) static int rb_exec_without_timer_thread(const struct rb_execarg *eargp, char *errmsg, size_t errmsg_buflen); -#endif /* * call-seq: @@ -2563,13 +2561,7 @@ rb_f_exec(int argc, const VALUE *argv) rb_execarg_parent_start(execarg_obj); fail_str = eargp->use_shell ? eargp->invoke.sh.shell_script : eargp->invoke.cmd.command_name; -#if defined(__APPLE__) || defined(__HAIKU__) rb_exec_without_timer_thread(eargp, errmsg, sizeof(errmsg)); -#else - before_exec_async_signal_safe(); /* async-signal-safe */ - rb_exec_async_signal_safe(eargp, errmsg, sizeof(errmsg)); - preserving_errno(after_exec_async_signal_safe()); /* async-signal-safe */ -#endif RB_GC_GUARD(execarg_obj); if (errmsg[0]) rb_sys_fail(errmsg); @@ -3077,7 +3069,6 @@ failure: return -1; } -#if defined(__APPLE__) || defined(__HAIKU__) static int rb_exec_without_timer_thread(const struct rb_execarg *eargp, char *errmsg, size_t errmsg_buflen) { @@ -3087,7 +3078,6 @@ rb_exec_without_timer_thread(const struct rb_execarg *eargp, char *errmsg, size_ preserving_errno(after_exec()); /* not async-signal-safe because it calls rb_thread_start_timer_thread. */ return ret; } -#endif #ifdef HAVE_WORKING_FORK /* This function should be async-signal-safe. Hopefully it is. */ |