예제 #1
0
 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")
예제 #3
0
 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)
예제 #4
0
 def enableListener(self):
     self.logger.debug("Enabling Job Change Listener in thread " + currentThread().getName())
     Job.getJobManager().addJobChangeListener(self)
 def __init__(self, pvname, val):
     Job.__init__(self, "Writing PV " + pvname)
     self.pvname = pvname
     self.val = val
     self.setPriority(Job.SHORT)
 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())