| 205 | self._finalizer = weakref.finalize(self, self._exit_sub_services) |
| 206 | |
| 207 | def start(self, async_llm_pid=None): |
| 208 | self.running = True |
| 209 | console_logger.debug("Start engineService...") |
| 210 | |
| 211 | if self.use_async_llm: |
| 212 | self.start_worker_service(async_llm_pid) |
| 213 | |
| 214 | if envs.ENABLE_V1_KVCACHE_SCHEDULER: |
| 215 | self.insert_task_to_worker_thread = threading.Thread( |
| 216 | target=self._schedule_request_to_worker_v1, daemon=True |
| 217 | ) |
| 218 | else: |
| 219 | self.insert_task_to_worker_thread = threading.Thread(target=self._schedule_request_to_worker, daemon=True) |
| 220 | self.insert_task_to_worker_thread.start() |
| 221 | self.token_processor.tasks_queue = self.engine_worker_queue |
| 222 | self.token_processor.run() |
| 223 | if self.cfg.scheduler_config.splitwise_role == "decode": |
| 224 | self._decode_process_splitwise_requests() |
| 225 | |
| 226 | self._register_to_router() |
| 227 | |
| 228 | def start_worker_service(self, async_llm_pid=None): |
| 229 | # Initialize IPC signals for worker management |