Skip to content

Commit eab96c7

Browse files
committed
fix: thread-saft
1 parent 1f854e0 commit eab96c7

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

volcenginesdkarkruntime/_utils/_model_breaker.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,37 @@
11
import asyncio
22
import time
33
import uuid
4+
import threading
45

56

67
class _QuerySet(object):
78
def __init__(self):
89
self._items = list()
910
self._index = dict()
11+
self._lock = threading.Lock()
1012

1113
def add(self, item: int) -> None:
12-
if item in self._index:
13-
return
14+
with self._lock:
15+
if item in self._index:
16+
return
1417

15-
self._items.append(item)
16-
self._index[item] = len(self._items) - 1
18+
self._items.append(item)
19+
self._index[item] = len(self._items) - 1
1720

1821
def remove(self, item: int) -> None:
19-
if item not in self._index:
20-
return
22+
with self._lock:
23+
if item not in self._index:
24+
return
2125

22-
index = self._index[item]
23-
self._items[index] = self._items[-1]
24-
self._index[self._items[-1]] = index
25-
self._items.pop()
26-
del self._index[item]
26+
index = self._index[item]
27+
self._items[index] = self._items[-1]
28+
self._index[self._items[-1]] = index
29+
self._items.pop()
30+
del self._index[item]
2731

2832
def query(self, item: int) -> int:
29-
return self._index[item]
33+
with self._lock:
34+
return self._index[item]
3035

3136

3237
class ModelBreaker(object):

0 commit comments

Comments
 (0)