Parcourir la source

workers: Start it at first cycle, not before

Bastien Sevajol il y a 6 ans
Parent
révision
650a451919
2 fichiers modifiés avec 9 ajouts et 4 suppressions
  1. 1 0
      synergine2/cycle.py
  2. 8 4
      synergine2/processing.py

+ 1 - 0
synergine2/cycle.py Voir le fichier

@@ -140,6 +140,7 @@ class CycleManager(BaseObject):
140 140
 
141 141
     def next(self) -> [Event]:
142 142
         if self.first_cycle:
143
+            self.process_manager.start_workers()
143 144
             # To dispatch subjects add/removes, enable track on them
144 145
             self.simulation.subjects.track_changes = True
145 146
             self.first_cycle = False

+ 8 - 4
synergine2/processing.py Voir le fichier

@@ -71,12 +71,16 @@ class ProcessManager(BaseObject):
71 71
         self.config = config
72 72
         self._process_count = process_count
73 73
         self.workers = []
74
-        self.start_workers(process_count, job)
74
+        self.job = job
75 75
 
76
-    def start_workers(self, worker_count: int, job: typing.Callable[..., typing.Any]) -> None:
76
+    @property
77
+    def process_count(self) -> int:
78
+        return self._process_count
79
+
80
+    def start_workers(self) -> None:
77 81
         assert not self.workers
78
-        for i in range(worker_count):
79
-            self.workers.append(Worker(self.config, job))
82
+        for i in range(self._process_count):
83
+            self.workers.append(Worker(self.config, self.job))
80 84
 
81 85
     def make_them_work(self, message: typing.Any) -> 'TODO':
82 86
         responses = []