getting a thread out of sleep
placid
Bulkan at gmail.com
Wed Feb 21 00:26:18 EST 2007
On Feb 21, 4:21 pm, "placid" <Bul... at gmail.com> wrote:
> On Feb 21, 4:12 pm, mark <rkmr... at gmail.com> wrote:
>
>
>
> > On 20 Feb 2007 20:47:57 -0800, placid <Bul... at gmail.com> wrote:
>
> > > On Feb 21, 3:08 pm, mark <rkmr... at gmail.com> 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>
More information about the Python-list
mailing list