[cig-commits] r11171 - short/3D/PyLith/trunk/pylith/utils

brad at geodynamics.org brad at geodynamics.org
Fri Feb 15 15:19:55 PST 2008


Author: brad
Date: 2008-02-15 15:19:55 -0800 (Fri, 15 Feb 2008)
New Revision: 11171

Modified:
   short/3D/PyLith/trunk/pylith/utils/EventLogger.py
Log:
Fixed PETSc logging to automatically filter out double counting of events.

Modified: short/3D/PyLith/trunk/pylith/utils/EventLogger.py
===================================================================
--- short/3D/PyLith/trunk/pylith/utils/EventLogger.py	2008-02-15 22:46:25 UTC (rev 11170)
+++ short/3D/PyLith/trunk/pylith/utils/EventLogger.py	2008-02-15 23:19:55 UTC (rev 11171)
@@ -32,7 +32,7 @@
     """
     self.cppHandle = None
     self._createCppHandle()
-    self.event = None
+    self.events = {} # dict of events with counts for current logging.
     return
 
 
@@ -65,7 +65,8 @@
   def registerEvent(self, name):
     """
     Register event.
-    """    
+    """
+    self.events[name] = 0 # Set log count to 0
     assert(None != self.cppHandle)
     return self.cppHandle.registerEvent(name)
 
@@ -82,10 +83,10 @@
     """
     Log event begin.
     """
-    if self.event != name: # prevent double logging
+    if self.events[name] == 0: # prevent double counting
       assert(None != self.cppHandle)
       self.cppHandle.eventBegin(self.cppHandle.eventId(name))
-      self.event = name
+    self.events[name] += 1
     return
 
 
@@ -93,10 +94,12 @@
     """
     Log event end.
     """
-    if None != self.event: # prevent double logging
+    if self.events[name] > 0:
+      self.events[name] -= 1
+    if 0 == self.events[name]: # prevent double counting
       assert(None != self.cppHandle)
       self.cppHandle.eventEnd(self.cppHandle.eventId(name))
-      self.event = None
+    
     return
 
 



More information about the cig-commits mailing list