app/django/core/cache/backends/locmem.py
changeset 323 ff1a9aa48cfd
parent 54 03e267d67478
equal deleted inserted replaced
322:6641e941ef1e 323:ff1a9aa48cfd
    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: