diff --git a/ChangeLog b/ChangeLog index 1470ff6bbe..fd015593cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Oct 29 14:26:56 2011 Tanaka Akira + + * io.c (rb_cloexec_open): use O_CLOEXEC if available. + Sat Oct 29 12:57:15 2011 Tanaka Akira * process.c (ruby_setsid): use rb_cloexec_open. diff --git a/io.c b/io.c index 806d095139..98484e8958 100644 --- a/io.c +++ b/io.c @@ -191,6 +191,9 @@ int rb_cloexec_open(const char *pathname, int flags, mode_t mode) { int ret; +#ifdef O_CLOEXEC + flags |= O_CLOEXEC; +#endif ret = open(pathname, flags, mode); if (ret == -1) return -1; fd_set_cloexec(ret);