On Feb 21, 4:21 pm, "placid" <[EMAIL PROTECTED]> wrote: > On Feb 21, 4:12 pm, mark <[EMAIL PROTECTED]> wrote: > > > > > On 20 Feb 2007 20:47:57 -0800, placid <[EMAIL PROTECTED]> wrote: > > > > On Feb 21, 3:08 pm, mark <[EMAIL PROTECTED]> wrote: > > > > Right now I have a thread that sleeps for sometime and check if an > > > > event has happened and go back to sleep. Now instead I want the thread > > > > to sleep until the event has occured process the event and go back to > > > > sleep > > > > > class eventhndler(threading.Thread): > > > > def __init__(self): > > > > threading.Thread.__init__(self) > > > > def run(self): > > > > while True: > > > > time.sleep(SLEEPTIME) > > > > ''''do event stuff''' > > > > The way i would do this is by using an threading.Event ( > > >http://docs.python.org/lib/event-objects.html) > > > > <code> > > > > class eventhandler(threading.Thread): > > > def __init__(self): > > > threading.Thread.__init__(self) > > > self.event = threading.Event() > > > def run: > > > while True: > > > # block until some event happens > > > self.event.wait() > > > """ do stuff here """ > > > self.event.clear() > > > </code> > > > > the way to use this is to get the main/separate thread to set() the > > > event object. > > > Can you give an example of how to get the main threead to set teh event > > object? > > this is exactly what i wanted to do! > > thanks a lot! > > mark > > To set the event object > > <code> > > if __name__ == "__main__": > evtHandlerThread = eventhandler() > evtHandler.start() > > # do something here # > evtHandler.event.set() > > # do more stuff here # > evtHandler.event.set() > > </code> > > Hope thats what your looking for. > > Cheers
oops I've miss-typed the thread variable name the following should work <code> if __name__ == "__main__": evtHandlerThread = eventhandler() evtHandlerThread.start() # do something here # evtHandlerThread.event.set() # do more stuff here # evtHandlerThread.event.set() </code> -- http://mail.python.org/mailman/listinfo/python-list