Serhiy Storchaka <storchaka+cpyt...@gmail.com> added the comment:

> Do you mean running tests twice, one with posix_spawn(), one without?

I mean that after writing tests they can be tested manually by disabling 
conditions for posix_spawn one by one. I.e. some tests should fail if remove 
"stdout is None" and some tests should fail if remove "not close_fds", etc.

> Can you please elaborate? posix_spawn() may or may not use fork() internally.

_posixsubprocess.fork_exec() calls 
PyOS_BeforeFork/PyOS_AfterFork_Child/PyOS_AfterFork_Parent. If use 
os.posix_spawn(), these calls will be omitted. This is a behavior change. We 
should either call these functions manually before/after os.posix_spawn() (but 
I do not know what to do with PyOS_AfterFork_Child), or disable using 
os.posix_spawn() if non-trivial callbacks were added, or use other methods for 
calling registered callbacks. But the stdlib already adds callbacks in the 
threading and random modules.

----------

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

Reply via email to