]> granicus.if.org Git - python/commitdiff
__enter__ and __exit__ must be on the class
authorBenjamin Peterson <benjamin@python.org>
Sun, 31 May 2009 15:00:27 +0000 (15:00 +0000)
committerBenjamin Peterson <benjamin@python.org>
Sun, 31 May 2009 15:00:27 +0000 (15:00 +0000)
Lib/multiprocessing/synchronize.py

index 716f3c700336a0ce5a6be74e682d2a0b0e71d379..6f90cb575e1c2741c0ad4064780d479f3c4a8057 100644 (file)
@@ -58,8 +58,12 @@ class SemLock(object):
     def _make_methods(self):
         self.acquire = self._semlock.acquire
         self.release = self._semlock.release
-        self.__enter__ = self._semlock.__enter__
-        self.__exit__ = self._semlock.__exit__
+
+    def __enter__(self):
+        return self._semlock.__enter__()
+
+    def __exit__(self, *args):
+        return self._semlock.__exit__(*args)
 
     def __getstate__(self):
         assert_spawning(self)
@@ -181,11 +185,15 @@ class Condition(object):
          self._woken_count, self._wait_semaphore) = state
         self._make_methods()
 
+    def __enter__(self):
+        return self._lock.__enter__()
+
+    def __exit__(self, *args):
+        return self._lock.__exit__(*args)
+
     def _make_methods(self):
         self.acquire = self._lock.acquire
         self.release = self._lock.release
-        self.__enter__ = self._lock.__enter__
-        self.__exit__ = self._lock.__exit__
 
     def __repr__(self):
         try: