timers not canceling!

Alex Hall mehgcap at gmail.com
Wed Mar 24 17:12:45 EDT 2010


Hi all,
I am having trouble with a timer I am trying to use. It is the same
timer, but I need to cancel it when a certain event happens, then
start it again when a second event happens. The below is from a shell
session, not a file, but it shows my problem: I call cancel on a
timer, then call start on it, and it thinks it is already running?
What am I missing?

>>> from threading import Timer
>>> def func():
...  print("Time up!")
...
>>> t=Timer(10.0, func)
>>> t.start()
>>> t.cancel()
>>> t.start()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\python26\lib\threading.py", line 465, in start
    raise RuntimeError("thread already started")
RuntimeError: thread already started
>>>

I typed start, then typed cancel within ten seconds (probably four or
five), then called start again a couple seconds later. I figured
canceling the timer would kill the thread so I could start it again. I
am not looking for a reset, since I do not want it counting always.
Thanks.
-- 
Have a great day,
Alex (msg sent from GMail website)
mehgcap at gmail.com; http://www.facebook.com/mehgcap



More information about the Python-list mailing list