Mercurial > hg
diff mercurial/worker.py @ 37844:8fb9985382be
pycompat: export queue module instead of symbols in module (API)
Previously, pycompat and util re-exported individual symbols from the
queue module. This had the side-effect of forcing the loading of the
queue module whenever pycompat/util was imported.
These symbols aren't used very often. So importing the module to
get a handle on the symbols is wasteful.
This commit changes pycompat so it no longer exports the individual
symbols in the queue module. Instead, we make the imported module
a "public" symbol. We drop the individual symbol aliases from the
util module. All consumers are updated to use pycompat.queue.* instead.
This change makes 300 invocations of `hg log -r. -T '{rev}\n'` a little
faster:
before: 18.44s
after: 17.87s
Differential Revision: https://phab.mercurial-scm.org/D3441
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 05 May 2018 18:35:16 -0700 |
parents | 5bc7ff103081 |
children | 8c38d2948217 |
line wrap: on
line diff
--- a/mercurial/worker.py Sat May 05 18:41:51 2018 -0700 +++ b/mercurial/worker.py Sat May 05 18:35:16 2018 -0700 @@ -235,7 +235,7 @@ # iteration. if self._interrupted: return - except util.empty: + except pycompat.queue.Empty: break except Exception as e: # store the exception such that the main thread can resurface @@ -262,8 +262,8 @@ return workers = _numworkers(ui) - resultqueue = util.queue() - taskqueue = util.queue() + resultqueue = pycompat.queue.Queue() + taskqueue = pycompat.queue.Queue() # partition work to more pieces than workers to minimize the chance # of uneven distribution of large tasks between the workers for pargs in partition(args, workers * 20):