File tree Expand file tree Collapse file tree 1 file changed +9
-21
lines changed Expand file tree Collapse file tree 1 file changed +9
-21
lines changed Original file line number Diff line number Diff line change 1
1
import asyncio
2
2
3
3
4
- class LockedMap :
4
+ class LockedMap ( dict ) :
5
5
def __init__ (self ):
6
- self .map_lock = asyncio .Lock ()
7
- self .map = {}
8
- self .locks = {}
9
-
10
- def get (self , key ):
11
- return self .map .get (key )
12
-
13
- def set (self , key , value ):
14
- self .map [key ] = value
6
+ super ().__init__ ()
7
+ self ._map_lock = asyncio .Lock ()
8
+ self ._locks = {}
15
9
16
10
async def get_lock (self , key ):
17
- await self .map_lock .acquire ()
18
- if key not in self .locks :
19
- self .locks [key ] = asyncio .Lock ()
11
+ await self ._map_lock .acquire ()
12
+ if key not in self ._locks :
13
+ self ._locks [key ] = asyncio .Lock ()
20
14
21
- lock = self .locks [key ]
15
+ lock = self ._locks [key ]
22
16
print (f"Lock acquired for { key } " )
23
- self .map_lock .release ()
17
+ self ._map_lock .release ()
24
18
return lock
25
-
26
- def __getitem__ (self , key ):
27
- return self .get (key )
28
-
29
- def __setitem__ (self , key , value ):
30
- self .set (key , value )
You can’t perform that action at this time.
0 commit comments