MCPcopy Create free account
hub / github.com/Tencent/CodeAnalysis / run

Method run

client/node/localtask/runtask.py:282–313  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

280 return task_list
281
282 def run(self):
283 task_success = True
284 self._filter_build_tasks()
285 no_build_tasks = self.prepare_tasks(self._no_build_task_requests)
286 build_tasks = self.prepare_tasks(self._build_task_requests)
287 # 收集需要编译的工具
288 self._build_task_names = [task.task_name for task in build_tasks]
289 while self._running_task or no_build_tasks or build_tasks:
290 task_success = self._handle_exist_task()
291 # 有一个任务失败,退出整个循环
292 if not task_success:
293 break
294
295 # 判断任务队列还没有满, 添加任务
296 if len(self._running_task) < self._task_limit:
297 # 非编译任务可以并行执行
298 # 先执行完非编译任务,再执行编译任务
299 if no_build_tasks:
300 # 启动一个非编译型任务
301 task = no_build_tasks.pop(0)
302 task.start()
303 self._running_task.append(task)
304 # 等非编译任务都执行完,再执行编译任务,避免编译生成的中间文件被非编译工具扫描到
305 # 编译任务不能并行执行
306 if not no_build_tasks and not self._running_task and build_tasks and not self._running_build_task:
307 # 启动一个编译型任务
308 task = build_tasks.pop(0)
309 task.start()
310 self._running_build_task.append(task)
311 self._running_task.append(task)
312
313 return task_success, self._finished_task_results, self._err_code, self._err_msg

Callers

nothing calls this directly

Calls 4

_filter_build_tasksMethod · 0.95
prepare_tasksMethod · 0.95
_handle_exist_taskMethod · 0.95
startMethod · 0.45

Tested by

no test coverage detected