summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-06-10 03:16:32 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-06-10 03:16:32 +0000
commitc27edd4a6e78d2545f67f1e04537f48ec2d8af10 (patch)
tree46c3fa7666c2b5091cd568485378c3521ef9eb5c /io.c
parent258716bd9d5398b7e6a6375ef5dd4f23790c6af5 (diff)
* 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
Diffstat (limited to 'io.c')
-rw-r--r--io.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/io.c b/io.c
index c398530241..66b7093e0c 100644
--- a/io.c
+++ b/io.c
@@ -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);