mercurial/profiling.py
changeset 32810 6675d23da748
parent 32809 062eb859d3ee
child 32851 cb6436e051ca
equal deleted inserted replaced
32809:062eb859d3ee 32810:6675d23da748
   212         except: # re-raises
   212         except: # re-raises
   213             self._closefp()
   213             self._closefp()
   214             raise
   214             raise
   215 
   215 
   216     def __exit__(self, exception_type, exception_value, traceback):
   216     def __exit__(self, exception_type, exception_value, traceback):
       
   217         propagate = None
   217         if self._profiler is not None:
   218         if self._profiler is not None:
   218             self._profiler.__exit__(exception_type, exception_value, traceback)
   219             propagate = self._profiler.__exit__(exception_type, exception_value,
       
   220                                                 traceback)
   219             if self._output == 'blackbox':
   221             if self._output == 'blackbox':
   220                 val = 'Profile:\n%s' % self._fp.getvalue()
   222                 val = 'Profile:\n%s' % self._fp.getvalue()
   221                 # ui.log treats the input as a format string,
   223                 # ui.log treats the input as a format string,
   222                 # so we need to escape any % signs.
   224                 # so we need to escape any % signs.
   223                 val = val.replace('%', '%%')
   225                 val = val.replace('%', '%%')
   224                 self._ui.log('profile', val)
   226                 self._ui.log('profile', val)
   225         self._closefp()
   227         self._closefp()
       
   228         return propagate
   226 
   229 
   227     def _closefp(self):
   230     def _closefp(self):
   228         if self._fpdoclose and self._fp is not None:
   231         if self._fpdoclose and self._fp is not None:
   229             self._fp.close()
   232             self._fp.close()