mercurial/profiling.py
changeset 32785 37ec8f24d912
parent 32784 086c1ef0f666
child 32786 0ead06d54ffe
--- a/mercurial/profiling.py	Fri Jun 09 11:39:53 2017 +0100
+++ b/mercurial/profiling.py	Fri Jun 09 11:41:47 2017 +0100
@@ -147,17 +147,19 @@
     Profiling is active when the context manager is active. When the context
     manager exits, profiling results will be written to the configured output.
     """
-    def __init__(self, ui):
+    def __init__(self, ui, enabled=True):
         self._ui = ui
         self._output = None
         self._fp = None
         self._profiler = None
+        self._enabled = enabled
         self._entered = False
         self._started = False
 
     def __enter__(self):
         self._entered = True
-        self.start()
+        if self._enabled:
+            self.start()
 
     def start(self):
         """Start profiling.
@@ -228,8 +230,5 @@
     just use a single code path for calling into code you may want to profile
     and this function determines whether to start profiling.
     """
-    if ui.configbool('profiling', 'enabled'):
-        with profile(ui):
-            yield
-    else:
+    with profile(ui, enabled=ui.configbool('profiling', 'enabled')):
         yield