+ self._t = ThreadRepeater(self._wake, SLEEP_TIME, name="Waker")
+ self._tobewokens = []
+
+ def register(f, time, one_shot = False):
+ '''Register a function which is called approximately every <time> seconds (or just once, if one_shot is True). f should return quickly, or it will delay the waker!'''
+ time = max(time//SLEEP_TIME, 1)
+ self._tobewokens.append(ToBeWoken(f, time, 0, one_shot))