Show
Ignore:
Timestamp:
07/07/08 07:41:07 (5 months ago)
Author:
rob
Message:

Changed from idle processing to polling timer to get output from subprocesses

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/peppy/lib/processmanager.py

    r1441 r1461  
    4949        _GlobalProcessManager = _ProcessManager() 
    5050        wx.GetApp().Bind(wx.EVT_END_PROCESS, ProcessManager().OnProcessEnded) 
     51        wx.GetApp().Bind(wx.EVT_TIMER, ProcessManager().OnUpdateOutput) 
    5152 
    5253    return _GlobalProcessManager 
     
    209210    debuglevel = 0 
    210211    autoclean = True 
     212    timer = None 
    211213     
    212214    jobs = [] 
     
    217219            if job.process: 
    218220                job.readStreams() 
     221     
     222    def OnUpdateOutput(self, evt): 
     223        self.idle() 
    219224     
    220225    def run(self, cmd, working_dir, job_output, input=""): 
     
    226231            self.job_lookup[job.pid] = job 
    227232            Publisher().sendMessage('peppy.processmanager.started', job) 
     233        if not self.timer: 
     234            self.__class__.timer = wx.Timer(wx.GetApp()) 
     235            self.__class__.timer.Start(500) 
    228236        return job 
    229237 
     
    255263        if self.autoclean: 
    256264            self.removeJob(job) 
     265        if not self.jobs: 
     266            self.__class__.timer.Stop() 
     267            self.__class__.timer = None 
    257268        self.finished(job) 
    258269