import time class desktop_SequentialTimer(): def __init__(self): self.activeTimeout = None self.ctrl = None self.queue = [] #} def update(self): # Get current time in milliseconds. now = time.time_ns() // 1000000 # Schedule an item. if ( self.activeTimeout == None and len(self.queue) > 0 ): self.activeTimeout = now + self.queue[0][0] elif ( self.activeTimeout != None and now >= self.activeTimeout ): # Report when the time is up. key = self.queue[0][1] value = self.queue[0][2] self.queue.pop(0) self.activeTimeout = None self.ctrl.set(key, value) #} #} def schedule(self, key, value, timeout): self.queue.append([timeout, key, value]) #}