STINNER Victor added the comment:

> You could do both: use the O_CLOEXEC flag and do a fcntl() call on POSIX

This is the best-effort option. It was already discussed and rejected in the 
issue #12760.

We had a similar discussion for the PEP 418 on monotonic clock. The final 
decision is not only provide time.monotonic() if the OS supports monotonic 
clock.

Using an exception, a developer can develop its own best-effort function:

try:
    fileobj = open(filename, "e")
except NotImplementedError:
    fileobj = open(filename, "r")
    # may also fail here if the fcntl module is missing
    import fcntl
    flags = fcntl.fcntl(self.socket, fcntl.F_GETFD)
    fcntl.fcntl(fileobj, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC)

We may expose the best-effort function somewhere else, but not in open() which 
must be atomic in my opinion.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue16850>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to