[issue14548] garbage collection just after multiprocessing's fork causes exceptions
Charles-François Natali
report at bugs.python.org
Thu Apr 12 10:01:00 CEST 2012
Charles-François Natali <neologix at free.fr> added the comment:
>> That's a problem indeed. Perhaps we need a global "fork lock" shared
>> between subprocess and multiprocessing?
>
> I did an atfork patch which included a (recursive) fork lock. See
>
> http://bugs.python.org/review/6721/show
>
> The patch included changes to multiprocessing and subprocess. (Being able to acquire the lock when doing fd manipulation is quite useful. For instance, the creation of Process.sentinel currently has a race which can mean than another process inherits the write end of the pipe. That would cause Process.join() to wait till both processes terminate.)
Indeed, I had a look and it looked good.
I just had a couple minor comments, I'll try to get back to this later
today, or by the end of the week.
> Actually, for Finalizers I think it would be easier to just record and check the pid.
I'd prefer this too.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue14548>
_______________________________________
More information about the Python-bugs-list
mailing list