Frank Millman wrote:

class Timer(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.event = threading.Event()

    def run(self):
        while not self.event.is_set():
             """ The things I want to do go here. """
             self.event.wait(number_of_seconds_to_wait)

    def stop(self):
        self.event.set()

In your main program -
  - to start the timer
      tmr = Timer()
      tmr.start()

  - to stop the timer
      tmr.stop()

It is easy to extend this by passing the number_of_seconds_to_wait, or a function name to be executed, as arguments to the Timer.

I'm newbie at threading, so I'm actually asking: should not method like stop() be surrounded with acquire() and release() of some threading.lock?

I mean, is this safe to update running thread's data from the main thread without lock?

Regards,
mk


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

Reply via email to