|
6 | 6 | '''West project commands''' |
7 | 7 |
|
8 | 8 | import argparse |
| 9 | +from joblib import Parallel, delayed |
9 | 10 | from functools import partial |
10 | 11 | import logging |
11 | 12 | import os |
@@ -1018,18 +1019,21 @@ def update_all(self): |
1018 | 1019 | import_flags=ImportFlag.FORCE_PROJECTS) |
1019 | 1020 |
|
1020 | 1021 | failed = [] |
1021 | | - for project in self.manifest.projects: |
| 1022 | + |
| 1023 | + def project_update(project): |
1022 | 1024 | if (isinstance(project, ManifestProject) or |
1023 | 1025 | project.name in self.updated): |
1024 | | - continue |
| 1026 | + return |
1025 | 1027 | try: |
1026 | 1028 | if not self.project_is_active(project): |
1027 | 1029 | self.dbg(f'{project.name}: skipping inactive project') |
1028 | | - continue |
| 1030 | + return |
1029 | 1031 | self.update(project) |
1030 | 1032 | self.updated.add(project.name) |
1031 | 1033 | except subprocess.CalledProcessError: |
1032 | 1034 | failed.append(project) |
| 1035 | + |
| 1036 | + Parallel(n_jobs=-1)(delayed(project_update)(project) for project in self.manifest.projects) |
1033 | 1037 | self._handle_failed(self.args, failed) |
1034 | 1038 |
|
1035 | 1039 | def update_importer(self, project, path): |
@@ -1090,13 +1094,15 @@ def update_some(self): |
1090 | 1094 | projects = self._projects(self.args.projects) |
1091 | 1095 |
|
1092 | 1096 | failed = [] |
1093 | | - for project in projects: |
| 1097 | + def project_update_some(project): |
1094 | 1098 | if isinstance(project, ManifestProject): |
1095 | | - continue |
| 1099 | + return |
1096 | 1100 | try: |
1097 | 1101 | self.update(project) |
1098 | 1102 | except subprocess.CalledProcessError: |
1099 | 1103 | failed.append(project) |
| 1104 | + |
| 1105 | + Parallel(n_jobs=-1)(delayed(project_update_some)(project) for project in self.manifest.projects) |
1100 | 1106 | self._handle_failed(self.args, failed) |
1101 | 1107 |
|
1102 | 1108 | def toplevel_projects(self): |
|
0 commit comments