Ejemplo n.º 1
0
 def run(self):
     "A simple loop checking for changes to the attribute list"
     # "batching" the updates should be more efficient than
     # reacting immediately, especially when listeners can come and
     # go quite frequently.
     while not self.stopped.is_set():
         sleep(self.period)
         if self._attributes:
             attributes, self._attributes = self._attributes, CaselessList()
             with self.lock:
                 self._update(attributes)
Ejemplo n.º 2
0
 def __init__(self, event_callback, unsubscribe_callback, period=0.5):
     QtCore.QThread.__init__(self)
     self.listeners = CaselessDict()
     self.inverse_listeners = {}
     self.event_callback = event_callback
     self.unsubscribe_callback = unsubscribe_callback
     self.period = period
     self._attributes = CaselessList()
     self._config = CaselessDict()
     self._last_event = TTLDict(default_ttl=10)
     self.attribute_validator = TangoAttributeNameValidator()
     self.device_validator = TangoDeviceNameValidator()
     self.eval_validator = EvaluationAttributeNameValidator()
     self.lock = Lock()
     self.stopped = Event()