From 6229b8bdcc8d05379086a4bf7e1af7fea378ea80 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Wed, 14 Mar 2007 08:34:01 +0000 Subject: [PATCH] added printingBegin/printingEnd to standardize suspend/resume logging --- direct/src/showbase/GarbageReport.py | 22 +++++++++------------- direct/src/showbase/Job.py | 20 ++++++++++++++++---- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/direct/src/showbase/GarbageReport.py b/direct/src/showbase/GarbageReport.py index 95c0e6137e..6f18f7b82f 100755 --- a/direct/src/showbase/GarbageReport.py +++ b/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) diff --git a/direct/src/showbase/Job.py b/direct/src/showbase/Job.py index 1843a34bf2..8769cd0552 100755 --- a/direct/src/showbase/Job.py +++ b/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