getting a thread out of sleep

placid Bulkan at gmail.com
Wed Feb 21 00:21:43 EST 2007


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





More information about the Python-list mailing list