equal
deleted
inserted
replaced
75 self._cache[key] = value |
75 self._cache[key] = value |
76 self._expire_info[key] = time.time() + timeout |
76 self._expire_info[key] = time.time() + timeout |
77 |
77 |
78 def set(self, key, value, timeout=None): |
78 def set(self, key, value, timeout=None): |
79 self._lock.writer_enters() |
79 self._lock.writer_enters() |
80 # Python 2.3 and 2.4 don't allow combined try-except-finally blocks. |
80 # Python 2.4 doesn't allow combined try-except-finally blocks. |
81 try: |
81 try: |
82 try: |
82 try: |
83 self._set(key, pickle.dumps(value), timeout) |
83 self._set(key, pickle.dumps(value), timeout) |
84 except pickle.PickleError: |
84 except pickle.PickleError: |
85 pass |
85 pass |
108 finally: |
108 finally: |
109 self._lock.writer_leaves() |
109 self._lock.writer_leaves() |
110 |
110 |
111 def _cull(self): |
111 def _cull(self): |
112 if self._cull_frequency == 0: |
112 if self._cull_frequency == 0: |
113 self._cache.clear() |
113 self.clear() |
114 self._expire_info.clear() |
|
115 else: |
114 else: |
116 doomed = [k for (i, k) in enumerate(self._cache) if i % self._cull_frequency == 0] |
115 doomed = [k for (i, k) in enumerate(self._cache) if i % self._cull_frequency == 0] |
117 for k in doomed: |
116 for k in doomed: |
118 self._delete(k) |
117 self._delete(k) |
119 |
118 |
131 self._lock.writer_enters() |
130 self._lock.writer_enters() |
132 try: |
131 try: |
133 self._delete(key) |
132 self._delete(key) |
134 finally: |
133 finally: |
135 self._lock.writer_leaves() |
134 self._lock.writer_leaves() |
|
135 |
|
136 def clear(self): |
|
137 self._cache.clear() |
|
138 self._expire_info.clear() |