Mercurial > hg
changeset 32810:6675d23da748
profile: properly propagate exception from the sub-context manager
Context manager has a mechanism to control extension propagation. It is not
used by profiling right now, but making the code correct will help prevent bug
in the future.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 12 Jun 2017 17:24:10 +0200 |
parents | 062eb859d3ee |
children | ff02bb5979c1 |
files | mercurial/profiling.py |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/profiling.py Mon Jun 12 17:25:37 2017 +0200 +++ b/mercurial/profiling.py Mon Jun 12 17:24:10 2017 +0200 @@ -214,8 +214,10 @@ raise def __exit__(self, exception_type, exception_value, traceback): + propagate = None if self._profiler is not None: - self._profiler.__exit__(exception_type, exception_value, traceback) + propagate = self._profiler.__exit__(exception_type, exception_value, + traceback) if self._output == 'blackbox': val = 'Profile:\n%s' % self._fp.getvalue() # ui.log treats the input as a format string, @@ -223,6 +225,7 @@ val = val.replace('%', '%%') self._ui.log('profile', val) self._closefp() + return propagate def _closefp(self): if self._fpdoclose and self._fp is not None: