Source code for riaps.utils.ticker

'''
Created on Jun 21, 2022

@author: riaps
'''

import threading
import time

[docs]class Ticker(threading.Thread): ''' Simple periodic ticker ''' def __init__(self,period, callback): threading.Thread.__init__(self,name='Ticker-%r' % period,daemon=False) self.period = period self.callback = callback self.finished = threading.Event()
[docs] def run(self): while True: self.finished.wait(timeout=self.period) if not self.finished.is_set(): self.callback() continue else: break
[docs] def cancel(self): self.finished.set()
if __name__ == '__main__': def tick(): print('> tick') ticker = Ticker(1.0,tick) ticker.start() time.sleep(5) ticker.cancel() ticker.join()