changeset 39257:497effb0a04a

util: make timedcm context manager also emit trace events Differential Revision: https://phab.mercurial-scm.org/D4348
author Augie Fackler <augie@google.com>
date Tue, 21 Aug 2018 17:13:35 -0400
parents 574e1d3bc667
children 331ab85e910b
files mercurial/util.py
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/util.py	Tue Aug 21 15:27:30 2018 -0400
+++ b/mercurial/util.py	Tue Aug 21 17:13:35 2018 -0400
@@ -36,6 +36,7 @@
 import warnings
 import zlib
 
+from hgdemandimport import tracing
 from .thirdparty import (
     attr,
 )
@@ -2896,7 +2897,7 @@
     __str__ = encoding.strmethod(__bytes__)
 
 @contextlib.contextmanager
-def timedcm():
+def timedcm(whencefmt='unknown timedcm', *whenceargs):
     """A context manager that produces timing information for a given context.
 
     On entering a timedcmstats instance is produced.
@@ -2908,7 +2909,8 @@
     timedcm._nested += 1
     timing_stats = timedcmstats(level=timedcm._nested)
     try:
-        yield timing_stats
+        with tracing.log(whencefmt, *whenceargs):
+            yield timing_stats
     finally:
         timing_stats.elapsed = timer() - timing_stats.start
         timedcm._nested -= 1