equal
deleted
inserted
replaced
34 try: |
34 try: |
35 exp = self._expire_info.get(key) |
35 exp = self._expire_info.get(key) |
36 if exp is None or exp <= time.time(): |
36 if exp is None or exp <= time.time(): |
37 try: |
37 try: |
38 self._set(key, pickle.dumps(value), timeout) |
38 self._set(key, pickle.dumps(value), timeout) |
|
39 return True |
39 except pickle.PickleError: |
40 except pickle.PickleError: |
40 pass |
41 pass |
|
42 return False |
41 finally: |
43 finally: |
42 self._lock.writer_leaves() |
44 self._lock.writer_leaves() |
43 |
45 |
44 def get(self, key, default=None): |
46 def get(self, key, default=None): |
45 self._lock.reader_enters() |
47 self._lock.reader_enters() |
105 self._cache.clear() |
107 self._cache.clear() |
106 self._expire_info.clear() |
108 self._expire_info.clear() |
107 else: |
109 else: |
108 doomed = [k for (i, k) in enumerate(self._cache) if i % self._cull_frequency == 0] |
110 doomed = [k for (i, k) in enumerate(self._cache) if i % self._cull_frequency == 0] |
109 for k in doomed: |
111 for k in doomed: |
110 self.delete(k) |
112 self._delete(k) |
111 |
113 |
112 def _delete(self, key): |
114 def _delete(self, key): |
113 try: |
115 try: |
114 del self._cache[key] |
116 del self._cache[key] |
115 except KeyError: |
117 except KeyError: |