Mercurial > hg-stable
changeset 35435:471918fa7f46
workers: add config to enable/diable workers
This adds config to disable/enable workers with default being enabled.
Test Plan:
enabled profile without updaing .hg/hgrc (the default should be to use workers) and ran
hg sprase --enable-profile <profile>.sparse
Watched in the proces explorer that hg started 12 new threads for materializing files (this is my worker.numcpus) value
Added
[worker]
enabled = False
to the .hg/hgrc and re ran the command. This time hg didn't spawn any new threads for matreializing of files
Differential Revision: https://phab.mercurial-scm.org/D1460
author | Wojciech Lis <wlis@fb.com> |
---|---|
date | Sun, 17 Dec 2017 11:26:25 -0800 |
parents | 71427ff1dff8 |
children | 86b8cc1f244e |
files | mercurial/configitems.py mercurial/help/config.txt mercurial/worker.py |
diffstat | 3 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/configitems.py Mon Nov 20 10:27:41 2017 -0800 +++ b/mercurial/configitems.py Sun Dec 17 11:26:25 2017 -0800 @@ -1253,6 +1253,9 @@ coreconfigitem('worker', 'backgroundclosethreadcount', default=4, ) +coreconfigitem('worker', 'enabled', + default=True, +) coreconfigitem('worker', 'numcpus', default=None, )
--- a/mercurial/help/config.txt Mon Nov 20 10:27:41 2017 -0800 +++ b/mercurial/help/config.txt Sun Dec 17 11:26:25 2017 -0800 @@ -2563,6 +2563,10 @@ directory updates in parallel on Unix-like systems, which greatly helps performance. +``enabled`` + Whether to enable workers code to be used. + (default: true) + ``numcpus`` Number of CPUs to use for parallel operations. A zero or negative value is treated as ``use the default``.
--- a/mercurial/worker.py Mon Nov 20 10:27:41 2017 -0800 +++ b/mercurial/worker.py Sun Dec 17 11:26:25 2017 -0800 @@ -82,7 +82,8 @@ args - arguments to split into chunks, to pass to individual workers ''' - if worthwhile(ui, costperarg, len(args)): + enabled = ui.configbool('worker', 'enabled') + if enabled and worthwhile(ui, costperarg, len(args)): return _platformworker(ui, func, staticargs, args) return func(*staticargs + (args,))