On Sat, Aug 27, 2011 at 2:59 AM, Ask Solem <a...@celeryproject.org> wrote:

>
> On 26 Aug 2011, at 16:53, Antoine Pitrou wrote:
>
> >
> > Hi,
> >
> >> I think that "deprecating" the use of threads w/ multiprocessing - or
> >> at least crippling it is the wrong answer. Multiprocessing needs the
> >> helper threads it uses internally to manage queues, etc. Removing that
> >> ability would require a near-total rewrite, which is just a
> >> non-starter.
> >
> > I agree that this wouldn't actually benefit anyone.
> > Besides, I don't think it's even possible to avoid threads in
> > multiprocessing, given the various constraints. We would have to force
> > the user to run their main thread in an event loop, and that would be
> > twisted (tm).
> >
> >> I would focus on the atfork() patch more directly, ignoring
> >> multiprocessing in the discussion, and focusing on the merits of gps'
> >> initial proposal and patch.
> >
> > I think this could also be combined with Charles-François' patch.
> >
> > Regards
>
>
>
> Have to agree with Jesse and Antoine here.
>
> Celery (celeryproject.org) uses multiprocessing, is wildly used in
> production,
> and is regarded as stable software that have been known to run for months
> at a time
> only to be restarted for software upgrades.
>
> I have been investigating an issue for some time, that I'm pretty sure is
> caused
> by this.  It occurs only rarely, so rarely I have not had any actual bug
> reports
> about it, it's just something I have experienced during extensive testing.
> The tone of the discussion on the bug tracker makes me think that I have
> been very lucky :-)
>
> Using the fork+exec approach seems like a much more realistic solution
> than rewriting multiprocessing.Pool and Manager to not use threads. In fact
> this is something I have been considering as a fix for the suspected
> issue for for some time.
> It does have implications that are annoying for sure, but we are already
> used to this on the Windows platform (it could help portability even).
>

+3 (agreed to Jesse, Antoine and Ask here).  The
http://bugs.python.org/issue8713 described "non-fork" implementation that
always uses subprocesses rather than plain forked processes is the right way
forward for multiprocessing.

-gps
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to