]> granicus.if.org Git - python/commitdiff
Implement MvL's improvement on __context__ in Condition;
authorGuido van Rossum <guido@python.org>
Tue, 25 Apr 2006 20:12:45 +0000 (20:12 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 25 Apr 2006 20:12:45 +0000 (20:12 +0000)
this can just call __context__ on the underlying lock.
(The same change for Semaphore does *not* work!)

Lib/threading.py

index cc1adcece69b46ce98682e1fcb6432f73af25814..27ec6b402d6fa967ce63843fc1bb17a15816403c 100644 (file)
@@ -164,7 +164,6 @@ class _Condition(_Verbose):
         self.__lock = lock
         # Export the lock's acquire() and release() methods
         self.acquire = lock.acquire
-        self.__enter__ = self.acquire
         self.release = lock.release
         # If the lock defines _release_save() and/or _acquire_restore(),
         # these override the default implementations (which just call
@@ -184,10 +183,7 @@ class _Condition(_Verbose):
         self.__waiters = []
 
     def __context__(self):
-        return self
-
-    def __exit__(self, t, v, tb):
-        self.release()
+        return self.__lock.__context__()
 
     def __repr__(self):
         return "<Condition(%s, %d)>" % (self.__lock, len(self.__waiters))