D4348: util: make timedcm context manager also emit trace events

durin42 (Augie Fackler) phabricator at mercurial-scm.org
Tue Aug 21 21:40:12 UTC 2018


durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4348

AFFECTED FILES
  mercurial/util.py

CHANGE DETAILS

diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -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



To: durin42, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list