be more cooperative, delay queue feeder by minimum scan rate in register list

This commit is contained in:
2019-06-24 13:17:09 +02:00
parent 4a090c5a73
commit 37548cfd53

View File

@ -95,6 +95,7 @@ class ScanRateConsideringQueueFeeder(threading.Thread):
super(ScanRateConsideringQueueFeeder, self).__init__()
self.registers = registers
self.queue = queue
self.delayEvent = threading.Event()
def run(self):
while True:
@ -108,6 +109,7 @@ class ScanRateConsideringQueueFeeder(threading.Thread):
for r in registersToBeHandled:
self.queue.put(r)
r.enqueued = True
self.delayEvent.wait(min([r.scanRate.total_seconds() for r in self.registers if r.scanRate]))
class CommunicationProcessor(threading.Thread):