That was a very good answer, and it sure sounds like it would work.
However, I failed at implementing it. :( My updated runQueue() function
is:

def runQueue(self):
        self.buildProcess = None
        count = 1 # current position in the queue
        while True:
                if self.buildProcess is None:
                        self.execute(self.cmdQueue[count][2], 
self.cmdQueue[count][0],
self.cmdQueue[count][1])
                        count = count + 1
                else:
                        # I'm not really sure what to put here

I pretty sure I did all of that wrong. ;) Also, how exactly would I
redirect stderr to another place?

On Dec 30, 12:22 am, Tom Plunket <[EMAIL PROTECTED]> wrote:
> cypher543 wrote:
> > self.buildPID = subprocess.Popen(buildCmd, stdout = subprocess.PIPE, stderr 
> > = subprocess.STDOUT)Instead of calling it self.buildPID, you might just 
> > call it
> self.buildProcess or something.  It's actually a Popen object that gets
> returned.
>
> So yes you can do what you want:
>
> __init__ self.buildProcess to None.  Then, in execute(), if
> (self.buildProcess is None) or (self.buildProcess.poll() is not None)
> start the next process.
>
> You've got to wait for one process to end before starting the next one,
> it's really that easy.  So, don't just go ahead and fire them all
> instantly.  Possibly what you want to do instead is have runQueue() do
> the check somehow that there's no active process running.
>
> What I would do, have runQueue() check to see if self.buildProcess is
> None.  If it is None, fire the next process in the queue.  If it isn't
> None, then check to see if it's ended.  If it has ended, then set
> self.buildProcess to None.  Next UI update the next step in the queue
> gets done.  Mind that you'll have to modify the queue as you go, e.g.
> self.queue = self.queue[1:].
>
> Finally, consider piping stderr separately, and direct its output to a
> different window in your GUI.  You could even make that window pop open
> on demand, if errors occur.
> 
> good luck,
> -tom!
> 
> --

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to