Feature #1291: O_CLOEXEC flag missing for Kernel::open
http://redmine.ruby-lang.org/issues/show/1291

Author: David Martin
Status: Open, Priority: Normal
Category: core

Linux has a the most useful O_CLOEXEC flag for open() that sets the CLOEXEC flag on the new file descriptor.

You can currently set the CLOEXEC flag on an open file descriptor using IO::fcntl(), but note that this does *not* work in a multithreaded program:  If one thread does open/fcntl while another does an exec, there is a race condition that could produce a file descriptor leak.  The only safe way to open a file with the CLOEXEC flag set in general (as far as I know) is to use the O_CLOEXEC flag to open().


----------------------------------------
http://redmine.ruby-lang.org