[Python-ideas] @run_as_thread decorator

Giampaolo Rodolà g.rodola at gmail.com
Sat Mar 5 20:25:20 CET 2011

It is probably a bad idea, I don't know. I'm the first one being
skeptical about it.
Maybe a real world example can bring some contribution to this
discussion since using this kind of approach at module-level doesn't
bring real benefits over using threading.Thread(target=func).start().

In my experience, I've found this extremely elegant when I was
developing a web application in which I wanted to start a serie of
long running tasks involving the db, and didn't care about the
function return value, nor I wanted to return anything relevant to the
user other than a simple "task started - this may take some time"
The code looked like this:

from utils import run_as_thread

class Admin:

    def refresh_persons(self):

    def refresh_voyages(self):

    def refresh_addresses(self):

> Basically you are proposing to complicate the API for no real benefit
> except that it "feels good".

I'd say there's a benefit in terms of elegance if this is used in a certain way.
On the other hand I understand your complaints, and this probably fits
better in an "util" module rather than threading.
I like the function return value example proposed by Bruce.
Is there a reason why this is not provided by base Thread class?


...suggest that users tend to require this feature.

--- Giampaolo

2011/3/5 Antoine Pitrou <solipsis at pitrou.net>:
> On Sat, 5 Mar 2011 19:00:52 +0100
> Giampaolo Rodolà <g.rodola at gmail.com>
> wrote:
>> I don't know whether it is a good idea to provide such a thing
>> natively, but I can't even figure out what exactly is wrong/weird with
>> this exactly.
> I don't understand what this two line variant brings over the other
> two-line variant:
>  t = threading.Thread(target=func)
>  t.start()
> Basically you are proposing to complicate the API for no real benefit
> except that it "feels good". It also makes things harder to learn for
> beginners since there are two abstractions stacked one over the other.
> It doesn't sound like a sensible addition.
> Regards
> Antoine.
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas

More information about the Python-ideas mailing list