On Wed, 28 May 2008 11:38:53 -0700, RossGK wrote: > > I've answered my own question about the "None" state - an event was > setting the thread to None where I didn't expect it. > > However, my question slightly repositioned is if a Thread is "Stopped" > it still seems to exist. Is there someway to make it go away, send it > to garbage collection etc? > You have to call the join() method of the thread object from another thread. This will terminate the thread and free its resources. This is usually the task of the parent thread which usually does something like: t = MyTread(...) t.start() # do your own stuff, then before quitting t.join() # Note that this waits until t is terminated
> Other part of the original Q - I assume a Stopped thread gets a false > from "isAlive" and a Running thread gets a true? Yes. You can try yourself: >>> import threading >>> class MyThread(threading.Thread): def __init__(self): threading.Thread.__init__(self) def stop(self): self._stop = True def run(self): self._stop= False while self._stop == False: import time time.sleep(0.1) >>> t = MyThread() >>> t.start() >>> t.isAlive() True >>> t.isAlive() False >>> t.join() >>> t.isAlive() False Ciao ---- FB -- http://mail.python.org/mailman/listinfo/python-list