All,<br><br>I am using the multiprocessing backport with Python 2.5.4 on a cross-platform Mac/Windows app.   Things were going swimmingly until I tried to load a library on the Mac that calls CoreFoundation system calls.  I discovered that certain (many?) OSX system calls fail when called from a forked process.  See <a href="http://developer.apple.com/technotes/tn2005/tn2083.html#SECDAEMONVSFRAMEWORKS">http://developer.apple.com/technotes/tn2005/tn2083.html#SECDAEMONVSFRAMEWORKS</a> and <a href="http://developer.apple.com/releasenotes/CoreFoundation/CoreFoundation.html">http://developer.apple.com/releasenotes/CoreFoundation/CoreFoundation.html</a> (search for "fork").  <br>
<br>Unfortunately, we are already using multprocessing (and its Queues and Pipes) and have a lot of time invested in it.  The three options I see are (1) replace multiprocessing with subrocess calls, (2) wrap the library that makes the MacOSX calls in a separate "server" process, or (3) modify the multiprocessing module to, on the Mac, be able to create "non-forked" processes (using subprocess, or fork() then exec*(), or similar).  <br>
<br>My question is, how realistic is #3?  On the Windows side multiprocessing is not using fork(), so it seems like the library may already support this.  If this is not completely crazy, I'd be interested in suggestions on what would have to change.  I'm happy to provide a patch if it is useful to others. <br>
<br>Thanks,<br>Bob Petersen<br>