Skip to content

Commit e8b9c4a

Browse files
committed
Change dictionary operators to use retry=True semantics
1 parent 06fd8da commit e8b9c4a

1 file changed

Lines changed: 16 additions & 16 deletions

File tree

diskcache/fanout.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -81,21 +81,17 @@ def set(self, key, value, expire=None, read=False, tag=None, retry=False):
8181
return False
8282

8383

84+
__set = set
85+
86+
8487
def __setitem__(self, key, value):
8588
"""Set `key` and `value` item in cache.
8689
8790
:param key: key for item
8891
:param value: value for item
8992
9093
"""
91-
index = self._hash(key) % self._count
92-
set_func = self._shards[index].set
93-
94-
while True:
95-
try:
96-
return set_func(key, value)
97-
except Timeout:
98-
continue
94+
self.__set(key, value, retry=True)
9995

10096

10197
def add(self, key, value, expire=None, read=False, tag=None, retry=False):
@@ -224,6 +220,9 @@ def get(self, key, default=None, read=False, expire_time=False, tag=False,
224220
return default
225221

226222

223+
__get = get
224+
225+
227226
def __getitem__(self, key):
228227
"""Return corresponding value for `key` from cache.
229228
@@ -232,9 +231,11 @@ def __getitem__(self, key):
232231
:raises KeyError: if key is not found
233232
234233
"""
235-
value = self.get(key, default=ENOVAL)
234+
value = self.__get(key, default=ENOVAL, retry=True)
235+
236236
if value is ENOVAL:
237237
raise KeyError(key)
238+
238239
return value
239240

240241

@@ -320,21 +321,20 @@ def delete(self, key, retry=False):
320321
return False
321322

322323

324+
__delete = delete
325+
326+
323327
def __delitem__(self, key):
324328
"""Delete corresponding item for `key` from cache.
325329
326330
:param key: key for item
327331
:raises KeyError: if key is not found
328332
329333
"""
330-
index = self._hash(key) % self._count
331-
del_func = self._shards[index].__delitem__
334+
deleted = self.__delete(key, retry=True)
332335

333-
while True:
334-
try:
335-
return del_func(key)
336-
except Timeout:
337-
continue
336+
if not deleted:
337+
raise KeyError(key)
338338

339339

340340
memoize = memoize

0 commit comments

Comments
 (0)