File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1313import json
1414import logging
1515import os
16+ import threading
1617from typing import Optional
1718
1819logger = logging .getLogger (__name__ )
@@ -74,26 +75,30 @@ def _get_redis():
7475
7576_lru_store : dict = {}
7677_lru_order : list = []
78+ _lru_lock = threading .Lock ()
7779
7880
7981def _lru_get (key : str ) -> Optional [str ]:
80- return _lru_store .get (key )
82+ with _lru_lock :
83+ return _lru_store .get (key )
8184
8285
8386def _lru_set (key : str , value : str ) -> None :
84- if key in _lru_store :
85- _lru_order .remove (key )
86- elif len (_lru_store ) >= LRU_MAX_SIZE :
87- oldest = _lru_order .pop (0 )
88- del _lru_store [oldest ]
89- _lru_store [key ] = value
90- _lru_order .append (key )
87+ with _lru_lock :
88+ if key in _lru_store :
89+ _lru_order .remove (key )
90+ elif len (_lru_store ) >= LRU_MAX_SIZE :
91+ oldest = _lru_order .pop (0 )
92+ del _lru_store [oldest ]
93+ _lru_store [key ] = value
94+ _lru_order .append (key )
9195
9296
9397def _lru_delete (key : str ) -> None :
94- if key in _lru_store :
95- del _lru_store [key ]
96- _lru_order .remove (key )
98+ with _lru_lock :
99+ if key in _lru_store :
100+ del _lru_store [key ]
101+ _lru_order .remove (key )
97102
98103
99104# ---------------------------------------------------------------------------
You can’t perform that action at this time.
0 commit comments