[Python-Dev] Proposed addition to threading module (original) (raw)
Guido van Rossum guido at python.org
Mon Apr 24 20:34:00 CEST 2006
- Previous message: [Python-Dev] Proposed addition to threading module - released
- Next message: [Python-Dev] Proposed addition to threading module - released
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 4/23/06, "Martin v. Löwis" <martin at v.loewis.de> 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/)
- Previous message: [Python-Dev] Proposed addition to threading module - released
- Next message: [Python-Dev] Proposed addition to threading module - released
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]