◐ Shell
clean mode source ↗

Message 149051 - Python tracker

The multiprocessing package appears to spawn a new process by calling only fork().  Apple's CoreFoundation libraries (and possibly more, I do not know the full extent) *require* new processes to be spawned with the full fork()+exec*() combo.

When using PyObjC to access native Mac libraries, Python's multithreading library is not usable.  The error thrown is:

------------------------
The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug.
------------------------

Test code: https://gist.github.com/1448398