From 2ee083f401442bcca7265de784e1b0f00a185c25 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Wed, 7 Aug 2013 19:31:35 -0400 Subject: Timers: Add parameters to disable all timers --- Carpet/Timers/param.ccl | 9 ++++++++- Carpet/Timers/src/CactusTimerSet.cc | 6 ++++++ Carpet/Timers/src/Timer.cc | 32 ++++++++++++++++++++------------ 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/Carpet/Timers/param.ccl b/Carpet/Timers/param.ccl index 2029006c9..d37812b53 100644 --- a/Carpet/Timers/param.ccl +++ b/Carpet/Timers/param.ccl @@ -12,6 +12,14 @@ BOOLEAN verbose "Output (debug) messages when a timer is started or stopped" STE { } "no" +BOOLEAN disable_cactus_timer_set "Disable Cactus timer set" STEERABLE=recover +{ +} "no" + +BOOLEAN disable_timer_trees "Disable timer trees" STEERABLE=recover +{ +} "no" + STRING xml_clock "Which clock to use in the XML timer output file" STEERABLE=always { ".*" :: "must be a legal clock name" @@ -26,4 +34,3 @@ INT output_precision "Number of decimal places to use in standard output for tim { 1:* :: "number of decimal places" } 1 - diff --git a/Carpet/Timers/src/CactusTimerSet.cc b/Carpet/Timers/src/CactusTimerSet.cc index 54eed2f70..8fe60bdb4 100644 --- a/Carpet/Timers/src/CactusTimerSet.cc +++ b/Carpet/Timers/src/CactusTimerSet.cc @@ -31,12 +31,18 @@ namespace Timers { // Add a timer void CactusTimerSet::add(CactusTimer* const timer) { + DECLARE_CCTK_PARAMETERS; + + if (disable_cactus_timer_set) return; timers.insert(timer); } // Remove a timer void CactusTimerSet::remove(CactusTimer* const timer) { + DECLARE_CCTK_PARAMETERS; + + if (disable_cactus_timer_set) return; timers.erase(timer); } diff --git a/Carpet/Timers/src/Timer.cc b/Carpet/Timers/src/Timer.cc index 50631c374..904950ef5 100644 --- a/Carpet/Timers/src/Timer.cc +++ b/Carpet/Timers/src/Timer.cc @@ -107,14 +107,18 @@ namespace Timers { extern "C" int Timer_Startup() { - // This must happen before any Timer objects are created - main_timer_tree.root = new TimerNode(&main_timer_tree, "main"); - main_timer_tree.current = 0; // No timer has been started yet - main_timer_tree.root->start(); + DECLARE_CCTK_PARAMETERS; - mode_timer_tree.root = new TimerNode(&mode_timer_tree, "meta mode"); - mode_timer_tree.current = 0; // No timer has been started yet - mode_timer_tree.root->start(); + if (not disable_timer_trees) { + // This must happen before any Timer objects are created + main_timer_tree.root = new TimerNode(&main_timer_tree, "main"); + main_timer_tree.current = 0; // No timer has been started yet + main_timer_tree.root->start(); + + mode_timer_tree.root = new TimerNode(&mode_timer_tree, "meta mode"); + mode_timer_tree.current = 0; // No timer has been started yet + mode_timer_tree.root->start(); + } return 0; } @@ -122,12 +126,16 @@ namespace Timers { extern "C" int Timer_Shutdown() { - // main_timer_tree.root->stop(); - // mode_timer_tree.root->stop(); + DECLARE_CCTK_PARAMETERS; - // Delete timer tree - delete main_timer_tree.root; main_timer_tree.root = 0; - delete mode_timer_tree.root; mode_timer_tree.root = 0; + if (not disable_timer_trees) { + // main_timer_tree.root->stop(); + // mode_timer_tree.root->stop(); + + // Delete timer trees + delete main_timer_tree.root; main_timer_tree.root = 0; + delete mode_timer_tree.root; mode_timer_tree.root = 0; + } return 0; } -- cgit v1.2.3