Richard Oudkerk added the comment:
http://hg.python.org/sandbox/sbt#spawn now contains support for starting
processes via a separate server process. This depends on fd passing support.
This also solves the problem of mixing threads and processes, but is much
faster than using fork+exec. It seems to be just as fast as using plain fork.
I have tested it successfully on Linux and a MacOSX buildbot. (OpenSolaris
does not seem to support fd passing.)
At the begining of your program you write
multiprocessing.set_start_method('forkserver')
to use the fork server.
Alternatively you can use
multiprocessing.set_start_method('spawn')
to use _posixsubprocess.fork_exec() with closefds=True on Unix or
multiprocessing.set_start_method('fork')
to use the standard fork method.
This branch also stops child processes on Windows from automatically inheriting
inheritable handles.
The test suite can be run with the different start methods by doing
python -m test.test_multiprocessing_fork
python -m test.test_multiprocessing_spawn
python -m test.test_multiprocessing_forkserver
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue8713>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com