Le 2 août 2013 08:32, "Charles-François Natali"
2013/8/2 Victor Stinner
: 2013/7/28 Antoine Pitrou
: (A) How should we support support where os.set_inheritable() is not supported? Can we announce that os.set_inheritable() is always available or not? Does such platform exist?
FD_CLOEXEC is POSIX: http://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html
Ok, but this information does not help me. Does Python support non-POSIX platforms? (Windows has HANDLE_FLAG_INHERIT.)
If we cannot answer to my question, it's safer to leave os.get/set_inheritable() optional (need hasattr in tests for example).
On Unix platforms, you should always have FD_CLOEXEC. If there were such a platform without FD inheritance support, then it would probably make sense to make it a no-op
Ok, and os.get_inheritable() can also always return False. It would prefer to fail with a compiler error is the platform is unknown. A platform might support FD inheritance, but with something different than fcntl() or ioctl() (ex: Windows). Victor