Bobholamovic commited on
Commit
448979e
·
1 Parent(s): 6d6af66

Lock model initialization

Browse files
Files changed (1) hide show
  1. app.py +4 -2
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import atexit
2
  import functools
3
  from queue import Queue
4
- from threading import Thread
5
 
6
  from paddleocr import PaddleOCR, draw_ocr
7
  from PIL import Image
@@ -26,6 +26,7 @@ class PaddleOCRModelManager(object):
26
  super().__init__()
27
  self._model_factory = model_factory
28
  self._queue = Queue()
 
29
  self._workers = []
30
  for _ in range(num_workers):
31
  worker = Thread(target=self._worker, daemon=False)
@@ -49,7 +50,8 @@ class PaddleOCRModelManager(object):
49
  worker.join()
50
 
51
  def _worker(self):
52
- model = self._model_factory()
 
53
  while True:
54
  item = self._queue.get()
55
  if item is None:
 
1
  import atexit
2
  import functools
3
  from queue import Queue
4
+ from threading import Lock, Thread
5
 
6
  from paddleocr import PaddleOCR, draw_ocr
7
  from PIL import Image
 
26
  super().__init__()
27
  self._model_factory = model_factory
28
  self._queue = Queue()
29
+ self._model_init_lock = Lock()
30
  self._workers = []
31
  for _ in range(num_workers):
32
  worker = Thread(target=self._worker, daemon=False)
 
50
  worker.join()
51
 
52
  def _worker(self):
53
+ with self._model_init_lock:
54
+ model = self._model_factory()
55
  while True:
56
  item = self._queue.get()
57
  if item is None: