Pārlūkot izejas kodu

added printingBegin/printingEnd to standardize suspend/resume logging

Darren Ranalli 19 gadi atpakaļ
vecāks
revīzija
6229b8bdcc
2 mainītis faili ar 25 papildinājumiem un 17 dzēšanām
  1. 9 13
      direct/src/showbase/GarbageReport.py
  2. 16 4
      direct/src/showbase/Job.py

+ 9 - 13
direct/src/showbase/GarbageReport.py

@@ -33,7 +33,6 @@ class GarbageReport(Job):
         # stick the arguments onto a ScratchPad so we can delete them all at once
         self._args = ScratchPad(name=name, log=log, verbose=verbose, fullReport=fullReport,
                                 findCycles=findCycles, doneCallback=doneCallback)
-        self._printing = False
         jobMgr.add(self)
         if threaded == False:
             jobMgr.finish(self)
@@ -46,10 +45,14 @@ class GarbageReport(Job):
             gc.set_debug(gc.DEBUG_SAVEALL)
         gc.collect()
         yield None
-        self.notify.debug('gc.garbage == %s' % fastRepr(gc.garbage))
-        yield None
+        # don't repr the garbage list if we don't have to
+        if self.notify.getDebug():
+            self.notify.debug('gc.garbage == %s' % fastRepr(gc.garbage))
+            yield None
         self.garbage = list(gc.garbage)
-        self.notify.debug('self.garbage == %s' % self.garbage)
+        # don't repr the garbage list if we don't have to
+        if self.notify.getDebug():
+            self.notify.debug('self.garbage == %s' % self.garbage)
         del gc.garbage[:]
         if not wasOn:
             gc.set_debug(oldFlags)
@@ -175,22 +178,15 @@ class GarbageReport(Job):
         self._report = s
 
         if self._args.log:
-            self._printing = True
+            self.printingBegin()
             for i in xrange(len(self._report)):
                 print self._report[i]
                 if (not (i & 0x3F)):
                     yield None
-            self._printing = False
+            self.printingEnd()
 
         yield Job.Done
 
-    def suspend(self):
-        if self._printing:
-            self.notify.info('SUSPEND')
-    def resume(self):
-        if self._printing:
-            self.notify.info('RESUME')
-
     def finished(self):
         if self._args.doneCallback:
             self._args.doneCallback(self)

+ 16 - 4
direct/src/showbase/Job.py

@@ -14,28 +14,40 @@ class Job:
         self._name = name
         self._generator = None
         self._id = Job._SerialGen.next()
+        self._printing = False
 
     def destroy(self):
         del self._name
         del self._generator
+        del self._printing
 
     def run(self):
+        # this is a generator
         # override and do your processing
         # yield Job.Continue when possible/reasonable
         # try not to run longer than the JobManager's timeslice between yields
+        #
         # when done, yield Job.Done
+        #
         raise "don't call down"
 
     def getPriority(self):
         # override if you want a different priority
         return Job.Priorities.Normal
 
+    def printingBegin(self):
+        self._printing = True
+    def printingEnd(self):
+        self._printing = False
+
+    def resume(self):
+        # called every time JobManager is going to start running this job
+        if self._printing:
+            print 'JOB:%s:RESUME' % self._name
     def suspend(self):
         # called when JobManager is going to stop running this job for a while
-        pass
-    def resume(self):
-        # called when JobManager is going to start running this job again
-        pass
+        if self._printing:
+            print 'JOB:%s:SUSPEND' % self._name
 
     def finished(self):
         # called when the job finishes and has been removed from the JobManager