|
19 | 19 | from dataclasses import dataclass |
20 | 20 | from typing import TYPE_CHECKING, Any, Generic, TypeVar |
21 | 21 |
|
22 | | -from . import app_detection, gui, ipc, processing, tracking |
| 22 | +from . import ipc |
23 | 23 | from ..config import GlobalConfig |
24 | 24 | from ..constants import IS_EXE, UPDATES_PER_SECOND |
25 | 25 | from ..exceptions import ExitRequest |
@@ -101,12 +101,7 @@ def __init__(self, use_gui: bool = True) -> None: |
101 | 101 |
|
102 | 102 | self._q_main: Queue[ipc.Message] = Queue() |
103 | 103 |
|
104 | | - self._q_gui: Queue[ipc.Message] = Queue() |
105 | | - self._p_gui = multiprocessing.Process(target=gui.GUI.launch, args=(self._q_main, self._q_gui)) |
106 | | - self._p_gui.daemon = True |
107 | | - if self.use_gui: |
108 | | - self._p_gui.start() |
109 | | - self._create_tracking_processes() |
| 104 | + self._create_tracking_processes(first_run=True) |
110 | 105 |
|
111 | 106 | # Disable show/hide if console is already hidden |
112 | 107 | handle = self._get_console_handle() |
@@ -183,23 +178,35 @@ def stop_tracking(self) -> None: |
183 | 178 |
|
184 | 179 | print('[Hub] Processes shut down') |
185 | 180 |
|
186 | | - def _create_tracking_processes(self) -> None: |
| 181 | + def _create_tracking_processes(self, first_run: bool = False) -> None: |
187 | 182 | """Setup the processes required for tracking. |
188 | 183 | If these are shut down, then a new process needs to be created. |
189 | 184 | """ |
190 | 185 | print('[Hub] Creating tracking processes...') |
| 186 | + from .app_detection import AppDetection |
| 187 | + from .gui import GUI |
| 188 | + from .processing import Processing |
| 189 | + from .tracking import Tracking |
| 190 | + |
| 191 | + if first_run: |
| 192 | + self._q_gui: Queue[ipc.Message] = Queue() |
| 193 | + self._p_gui = multiprocessing.Process(target=GUI.launch, args=(self._q_main, self._q_gui)) |
| 194 | + self._p_gui.daemon = True |
| 195 | + if self.use_gui: |
| 196 | + self._p_gui.start() |
| 197 | + |
191 | 198 | self._q_tracking: Queue[ipc.Message] = Queue() |
192 | | - self._p_tracking = multiprocessing.Process(target=tracking.Tracking.launch, args=(self._q_main, self._q_tracking)) |
| 199 | + self._p_tracking = multiprocessing.Process(target=Tracking.launch, args=(self._q_main, self._q_tracking)) |
193 | 200 | self._p_tracking.daemon = True |
194 | 201 | self._p_tracking.start() |
195 | 202 |
|
196 | 203 | self._q_processing: Queue[ipc.Message] = Queue() |
197 | | - self._p_processing = multiprocessing.Process(target=processing.Processing.launch, args=(self._q_main, self._q_processing)) |
| 204 | + self._p_processing = multiprocessing.Process(target=Processing.launch, args=(self._q_main, self._q_processing)) |
198 | 205 | self._p_processing.daemon = True |
199 | 206 | self._p_processing.start() |
200 | 207 |
|
201 | 208 | self._q_app_detection: Queue[ipc.Message] = Queue() |
202 | | - self._p_app_detection = multiprocessing.Process(target=app_detection.AppDetection.launch, args=(self._q_main, self._q_app_detection)) |
| 209 | + self._p_app_detection = multiprocessing.Process(target=AppDetection.launch, args=(self._q_main, self._q_app_detection)) |
203 | 210 | self._p_app_detection.daemon = True |
204 | 211 | self._p_app_detection.start() |
205 | 212 |
|
|
0 commit comments