#477: Carpet commit f33caf3aba96 (hg) breaks timer output in CCTK_Terminate ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: eschnett Type: defect | Status: review Priority: major | Milestone: Component: Carpet | Version: Resolution: | Keywords: ---------------------+------------------------------------------------------
Comment (by hinder):
There is no requirement that the Cactus timers be properly nested. However, the changes I made require that objects of the Carpet "Timer" class are used in a nested manner. Those objects use the Cactus timers. As far as I know, timer starting and stopping is lexically correct throughout Carpet. i.e. every Timer.start is followed by a Timer.stop before any timers are started without stopping them. It is possible that something escapes out of a Timer.start .... Timer.stop sequence between the start and stop without calling the Timer.stop code. We should figure out what is causing this and see if we can ensure that it doesn't happen. So in summary: it cannot be timers in the flesh that are called out of sequence, it must be Carpet Timer objects. We should add code to that assert statement to print the names of the two timers. The TimerNode class has a d_name member which gives the name of the timer. We could also add debug output to the start and stop methods of TimerNode to print the names of timers being started and stopping. This should reveal the problem. I don't actually have a checkout of the development version of Carpet to test with at the moment so it's not a quick thing for me to look at right now.
edit: this was written while Roland was typing the previous comment!