You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
multiprocessing package incompatible with PyObjC #57767
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.
------------------------
Activity
mrmekon commentedon Dec 8, 2011
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
ned-deily commentedon Dec 8, 2011
(Reference original discussion in pyobjc-dev mailing list archived here: http://comments.gmane.org/gmane.comp.python.pyobjc.devel/5965)
ned-deily commentedon Jan 4, 2012
bpo-8713 proposes adding the option of using processes for multiprocessing rather than bare forks. Let's consolidate this issue with that one.