Mercurial > hg > mercurial-source
changeset 33567:086c1ef0f666
profile: introduce a "start" method to the profile context
The start method is doing all profiler setup and activation. It is currently
unconditionally called by '__init__' but this will be made more flexible in
later changesets.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 09 Jun 2017 11:39:53 +0100 |
parents | 4483696dacee |
children | 37ec8f24d912 |
files | mercurial/profiling.py |
diffstat | 1 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/profiling.py +++ b/mercurial/profiling.py @@ -152,8 +152,24 @@ self._output = None self._fp = None self._profiler = None + self._entered = False + self._started = False def __enter__(self): + self._entered = True + self.start() + + def start(self): + """Start profiling. + + The profiling will stop at the context exit. + + If the profiler was already started, this has no effect.""" + if not self._entered: + raise error.ProgrammingError() + if self._started: + return + self._started = True profiler = encoding.environ.get('HGPROF') proffn = None if profiler is None: