def transferListener(self): self.jobCountLock.acquire() # We need to be after all the application's code reacting to the job, so we truly respond when it's finished self.logger.debug("Transferring Job Change Listener in thread " + currentThread().getName()) newListener = self.makeCopy() JobListener.instance = newListener Job.getJobManager().addJobChangeListener(newListener) Job.getJobManager().removeJobChangeListener(self) self.jobCountLock.release()
def scheduled(self, e): jobName = e.getJob().getName().lower() self.alterJobCount(1) self.logger.debug("Scheduled job '" + jobName + "' jobs = " + repr(self.jobCount)) # As soon as we can, we move to the back of the list, so that jobs scheduled in 'done' methods get noticed if not e.getJob().isSystem(): self.afterOthers = True Job.getJobManager().removeJobChangeListener(self) Job.getJobManager().addJobChangeListener(self) self.logger.debug("At back of list now")
def registerScheduled(self, event): job = event.getJob() parentJob = Job.getJobManager().currentJob() jobName = job.getName().lower() self.jobCount += 1 parentJobName = parentJob.getName().lower() if parentJob else "" threadName = currentThread().getName() category = "jobs_" + threadName postfix = ", parent job " + parentJobName if parentJobName else "" self.logger.debug("Scheduled job '" + jobName + "' jobs = " + repr(self.jobCount) + ", thread = " + threadName + postfix) if jobName in self.systemJobNames or self.shouldUseJob(job): self.logger.debug("Now using job name '" + jobName + "' for category '" + category + "'") self.jobNamesToUse[category] = jobName if jobName != parentJobName: self.removeJobName(parentJobName) def matchName(eventName, delayLevel): return eventName == self.appEventPrefix + parentJobName DisplayFilter.removeApplicationEvent(matchName)
def enableListener(self): self.logger.debug("Enabling Job Change Listener in thread " + currentThread().getName()) Job.getJobManager().addJobChangeListener(self)
def __init__(self, *args, **kw): self.allViews = set() # Eclipse RCP has its own mechanism for background processing # Hook application events directly into that for synchronisation Job.getJobManager().addJobChangeListener(JobListener()) swtsimulator.WidgetMonitor.__init__(self, *args, **kw)
def enable(cls): Job.getJobManager().addJobChangeListener(cls())