On Fri, Sep 5, 2008 at 12:10 PM, Jesus Cea <[EMAIL PROTECTED]> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Nick Coghlan wrote: >> Guido van Rossum wrote: >>> On Thu, Sep 4, 2008 at 8:47 AM, Antoine Pitrou <[EMAIL PROTECTED]> wrote: >>>> Jesus Cea <jcea <at> jcea.es> writes: >>>>> First we had "thread.setDaemon()". This was not PEP8, so Python 3.0 >>>>> renamed it to "thread.set_daemon()". Lately Python 3.0 changes the >>>>> method to an attribute "thread.daemon". >>>>> >>>>> I think the last change is risky, because you can mistype and create a >>>>> new attribute, instead of set daemon mode. Since daemon mode is only >>>>> usually visible when things goes wrong (the main thread dies), you can >>>>> miss the bug for a long time. >>>> I've never understood why the "daemon" flag couldn't be passed as one of >>>> the >>>> constructor arguments. It would make code shorter, and avoid the mistyping >>>> risk >>>> mentioned by Jesus. It also sounds saner, since you shouldn't change the >>>> flag >>>> after the thread is started anyway. >>> As to the why question, this was done to match the Java Thread class. >>> I don't want to speculate why the Java API was designed this way -- >>> possibly it was a relic of an earlier API version in Java, but >>> possibly there's a reason I can't fathom right now. After all, there >>> are excellent reasons why start() is a separate call... >> >> Hmm, having (daemon=False) as a parameter on start() would probably be >> an even better API than having it on __init__() (modulo subclassing >> compatibility concerns). > > Agreed. Could it be done for 3.0?.
Also, FWIW, I thought we were no longer doing API changes? _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com