On 4/23/06, "Martin v. Löwis" <[EMAIL PROTECTED]> wrote: > Nick Coghlan wrote: > > Do we want to add a "released" context manager to the threading module for > > 2.5? > > I don't think that should be added. I would consider it a dangerous > programming style: if the lock merely doesn't "need" to be held (i.e. > if it isn't necessary, but won't hurt), one should just keep holding > the lock. If it is essential to release the lock, because the code > would otherwise deadlock, the code should be dramatically revised > to avoid that situation, e.g. by redefining the granularity of the > lock, and moving the with statements accordingly.
Actually, what Nick describes is *exactly* how one should write code using a condition variable: LOCK while nothing to do: UNLOCK wait for the condition variable (or sleep, or whatever) LOCK # here we have something to do with the lock held remove the to-do item UNLOCK except that the outer LOCK/UNLOCK pair should be using a try/except and the inner UNLOCK/LOCK pair should too. I don't see how you can do this easily by rewriting the code; the rewrite would be considerably ugly (or requires a GOTO :-). -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ 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