MCPcopy Create free account
hub / github.com/ActiveState/code / Timer

Class Timer

recipes/Python/492231_timerpy/recipe-492231.py:6–38  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4################################################################################
5
6class Timer:
7
8 # Create Timer Object
9 def __init__(self, interval, function, *args, **kwargs):
10 self.__lock = thread.allocate_lock()
11 self.__interval = interval
12 self.__function = function
13 self.__args = args
14 self.__kwargs = kwargs
15 self.__loop = False
16 self.__alive = False
17
18 # Start Timer Object
19 def start(self):
20 self.__lock.acquire()
21 if not self.__alive:
22 self.__loop = True
23 self.__alive = True
24 thread.start_new_thread(self.__run, ())
25 self.__lock.release()
26
27 # Stop Timer Object
28 def stop(self):
29 self.__lock.acquire()
30 self.__loop = False
31 self.__lock.release()
32
33 # Private Thread Function
34 def __run(self):
35 while self.__loop:
36 self.__function(*self.__args, **self.__kwargs)
37 time.sleep(self.__interval)
38 self.__alive = False

Callers 2

startTimerMethod · 0.50
recipe-303062.pyFile · 0.50

Calls

no outgoing calls

Tested by

no test coverage detected