diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-06-10 03:16:32 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-06-10 03:16:32 +0000 |
commit | c27edd4a6e78d2545f67f1e04537f48ec2d8af10 (patch) | |
tree | 46c3fa7666c2b5091cd568485378c3521ef9eb5c | |
parent | 258716bd9d5398b7e6a6375ef5dd4f23790c6af5 (diff) | |
download | ruby-c27edd4a6e78d2545f67f1e04537f48ec2d8af10.tar.gz |
* io.c (popen_exec): don't call rb_thread_atfork_before_exec. use
rb_exec_async_signal_safe instead of rb_exec_err.
(pipe_open): use rb_fork_async_signal_safe instead of rb_fork_err.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | io.c | 5 |
2 files changed, 8 insertions, 3 deletions
@@ -1,3 +1,9 @@ +Sun Jun 10 12:15:18 2012 Tanaka Akira <akr@fsij.org> + + * io.c (popen_exec): don't call rb_thread_atfork_before_exec. use + rb_exec_async_signal_safe instead of rb_exec_err. + (pipe_open): use rb_fork_async_signal_safe instead of rb_fork_err. + Sun Jun 10 11:44:57 2012 Tanaka Akira <akr@fsij.org> * process.c (rb_fork_internal): call after_fork only unless @@ -5461,8 +5461,7 @@ popen_exec(void *pp, char *errmsg, size_t errmsg_len) { struct popen_arg *p = (struct popen_arg*)pp; - rb_thread_atfork_before_exec(); - return rb_exec_err(p->execp, errmsg, errmsg_len); + return rb_exec_async_signal_safe(p->execp, errmsg, errmsg_len); } #endif @@ -5539,7 +5538,7 @@ pipe_open(struct rb_exec_arg *eargp, const char *modestr, int fmode, convconfig_ } if (eargp) { rb_exec_arg_fixup(arg.execp); - pid = rb_fork_err(&status, popen_exec, &arg, arg.execp->redirect_fds, errmsg, sizeof(errmsg)); + pid = rb_fork_async_signal_safe(&status, popen_exec, &arg, arg.execp->redirect_fds, errmsg, sizeof(errmsg)); } else { pid = rb_fork(&status, 0, 0, Qnil); |