-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample6.py
More file actions
46 lines (38 loc) · 1.04 KB
/
Copy pathexample6.py
File metadata and controls
46 lines (38 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import time
class Timer:
def __init__(self, timeout):
self.timeout = timeout
self.start = time.time()
def done(self):
return time.time() - self.start > self.timeout
def on_timer_done(self, callback):
self.callback = callback
if __name__ == "__main__":
### First try
timer = Timer(1.0)
timer.on_timer_done(lambda: print("Timer is done!"))
while True:
if timer.done():
timer.callback()
break
### Second try
# timers = []
#
# timer1 = Timer(1.0)
# timer1.on_timer_done(lambda: print("First timer is done!"))
#
# timer2 = Timer(2.0)
# timer2.on_timer_done(lambda: print("Second timer is done!"))
#
# timers.append(timer1)
# timers.append(timer2)
#
# while True:
# for timer in timers:
# if timer.done():
# timer.callback()
# timers.remove(timer)
#
# # If no more timers are left, we exit the loop
# if len(timers) == 0:
# break