Преглед на файлове

Replaces lock.aquires/try/finally/release by a with statement.

rnoel преди 14 години
родител
ревизия
1a59e5ffc8
променени са 1 файла, в които са добавени 3 реда и са изтрити 9 реда
  1. 3 9
      celery/datastructures.py

+ 3 - 9
celery/datastructures.py

@@ -9,6 +9,7 @@ Custom data structures.
 
 
 """
 """
 from __future__ import absolute_import
 from __future__ import absolute_import
+from __future__ import with_statement
 
 
 import time
 import time
 import traceback
 import traceback
@@ -303,21 +304,14 @@ class LocalCache(OrderedDict):
         self.lock = Lock()
         self.lock = Lock()
 
 
     def __setitem__(self, key, value):
     def __setitem__(self, key, value):
-        self.lock.acquire()   
-        try:
+        with self.lock:
             while len(self) >= self.limit:
             while len(self) >= self.limit:
                 self.popitem(last=False)
                 self.popitem(last=False)
             super(LocalCache, self).__setitem__(key, value)
             super(LocalCache, self).__setitem__(key, value)
-        finally:
-          self.lock.release()
 
 
     def pop(self, key, *args):
     def pop(self, key, *args):
-        self.lock.acquire()   
-        try:
+        with self.lock:
             self.pop(key, *args)
             self.pop(key, *args)
-        finally:
-          self.lock.release()
-
 
 
 
 
 class TokenBucket(object):
 class TokenBucket(object):