On 02/08/2013 1:21am, Victor Stinner wrote:
2013/7/30 Victor Stinner <victor.stin...@gmail.com>:
I would be nice to have a "pass_handles" on Windows.
I'm not sure that it's possible to implement this atomically. It's
probably better to leave the application to choose how the inheritance
is defined.
Example:
for handle in handles:
os.set_inheritable(handle, True)
subprocess.call(...)
for handle in handles:
os.set_inheritable(handle, False)
This example is safe if the application has a single thread (if a
single thread spawn new programs). Making handles non-inheritable
again may be useless.
If we have a recursive lock which is always held when Python starts a
process then you could write:
with subprocess.getlock():
for handle in handles:
os.set_inheritable(handle, True)
subprocess.call(...)
for handle in handles:
os.set_inheritable(handle, False)
This should be used by fork() and multiprocessing too.
--
Richard
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com