aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2015-11-12 15:59:48 +0100
committerMichał Górny <mgorny@gentoo.org>2015-11-12 19:56:39 +0100
commitfd69b6822c9929d011e2da863b8dad162b803088 (patch)
tree2a09149bc6d42e3dd2b1c7a53818e0200552d73d
parentegencache: parallelize --update-changelogs (bug 565540) (diff)
downloadportage-fd69b6822c9929d011e2da863b8dad162b803088.tar.gz
portage-fd69b6822c9929d011e2da863b8dad162b803088.tar.bz2
portage-fd69b6822c9929d011e2da863b8dad162b803088.zip
egencache: Delay updating Manifests until all other tasks complete
Since thick Manifests can reference other files (ChangeLogs especially), their generation should be run as the lask task done by egencache, followed only by timestamp update. Fixes: https://bugs.gentoo.org/565626
-rwxr-xr-xbin/egencache46
1 files changed, 23 insertions, 23 deletions
diff --git a/bin/egencache b/bin/egencache
index 76eb00b15..a9d4657b9 100755
--- a/bin/egencache
+++ b/bin/egencache
@@ -1105,29 +1105,6 @@ def egencache_main(args):
else:
ret.append(gen_cache.returncode)
- if options.update_manifests:
-
- cp_iter = None
- if atoms:
- cp_iter = iter(atoms)
-
- event_loop = global_event_loop()
- scheduler = ManifestScheduler(portdb, cp_iter=cp_iter,
- gpg_cmd=gpg_cmd, gpg_vars=gpg_vars,
- force_sign_key=force_sign_key,
- max_jobs=options.jobs,
- max_load=options.load_average,
- event_loop=event_loop)
-
- signum = run_main_scheduler(scheduler)
- if signum is not None:
- sys.exit(128 + signum)
-
- if options.tolerant:
- ret.append(os.EX_OK)
- else:
- ret.append(scheduler.returncode)
-
if options.update_pkg_desc_index:
if repo_config.writable:
writable_location = repo_config.location
@@ -1167,6 +1144,29 @@ def egencache_main(args):
sys.exit(128 + signum)
ret.append(gen_clogs.returncode)
+ if options.update_manifests:
+
+ cp_iter = None
+ if atoms:
+ cp_iter = iter(atoms)
+
+ event_loop = global_event_loop()
+ scheduler = ManifestScheduler(portdb, cp_iter=cp_iter,
+ gpg_cmd=gpg_cmd, gpg_vars=gpg_vars,
+ force_sign_key=force_sign_key,
+ max_jobs=options.jobs,
+ max_load=options.load_average,
+ event_loop=event_loop)
+
+ signum = run_main_scheduler(scheduler)
+ if signum is not None:
+ sys.exit(128 + signum)
+
+ if options.tolerant:
+ ret.append(os.EX_OK)
+ else:
+ ret.append(scheduler.returncode)
+
if options.write_timestamp:
timestamp_path = os.path.join(repo_path, 'metadata', 'timestamp.chk')
try: