X-Git-Url: https://git.ralfj.de/saartuer.git/blobdiff_plain/dfe98478e79cf926b2867677b3e1b90e6b679024..dfd60ef69a6fa4b790250431f9b7fde6da084ec9:/waker.py diff --git a/waker.py b/waker.py index 1cf2884..79eff81 100644 --- a/waker.py +++ b/waker.py @@ -1,35 +1,43 @@ from libtuer import ThreadRepeater -from collections import namedtuple +from threading import Lock SLEEP_TIME = 0.5 -ToBeWoken = namedtuple('ToBeWoken','f period time_since_call one_shot') +class ToBeWoken: + '''a simple struct storing information about a to-be-woken function''' + def __init__(self, f, period, one_shot): + self.f = f + self.period = period + self.time_since_call = 0 + self.one_shot = one_shot class Waker(): - def __init__(self, sm): - self._sm = sm - self._t = ThreadRepeater(self._wake, SLEEP_TIME, name="Waker") + def __init__(self): self._tobewokens = [] + self._tobewokens_lock = Lock() + self._t = ThreadRepeater(self._wake, SLEEP_TIME, name="Waker") - def register(f, time, one_shot = False): + def register(self, f, time, one_shot = False): '''Register a function which is called approximately every