[issue18966] Threads within multiprocessing Process terminate early

Davin Potts report at bugs.python.org
Thu Jul 14 11:15:15 EDT 2016


Davin Potts added the comment:

Tim:  Totally agreed about threading.Thread not being a POSIX thread.  It was not my intent to suggest that they were equivalent -- apologies for the confusion.

Instead I was attempting to describe a mentality of processes and their common behavior across multiple platforms at termination.  The behavior of child processes via multiprocessing currently appears to follow this common mentality of signal the threads then exit quickly.  (To avoid confusion, I am making an observation here.)

Whereas threading.Thread is attempting to provide something homogeneous across platforms, achieving a similar goal in multiprocessing.Process is complicated by the concepts of fork vs. spawn and their availability on various OSes (a source of real confusion for some).  This further opens the question of what should the mentality be for multiprocessing.Process?  The notion that a process can die in such a way that not all of its threads were given time to clean up does not strike me as a foreign concept.  The notion that a threading.Thread should always be (or at least be attempted to be) joined makes sense.  The notion of categorically refusing to let a process end perhaps overreaches in certain situations.

I believe the more general solution exists in offering atexit handlers on multiprocessing.Process.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue18966>
_______________________________________


More information about the Python-bugs-list mailing list