be more cooperative, delay queue feeder by minimum scan rate in register list
This commit is contained in:
@ -95,6 +95,7 @@ class ScanRateConsideringQueueFeeder(threading.Thread):
|
|||||||
super(ScanRateConsideringQueueFeeder, self).__init__()
|
super(ScanRateConsideringQueueFeeder, self).__init__()
|
||||||
self.registers = registers
|
self.registers = registers
|
||||||
self.queue = queue
|
self.queue = queue
|
||||||
|
self.delayEvent = threading.Event()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
while True:
|
while True:
|
||||||
@ -108,6 +109,7 @@ class ScanRateConsideringQueueFeeder(threading.Thread):
|
|||||||
for r in registersToBeHandled:
|
for r in registersToBeHandled:
|
||||||
self.queue.put(r)
|
self.queue.put(r)
|
||||||
r.enqueued = True
|
r.enqueued = True
|
||||||
|
self.delayEvent.wait(min([r.scanRate.total_seconds() for r in self.registers if r.scanRate]))
|
||||||
|
|
||||||
|
|
||||||
class CommunicationProcessor(threading.Thread):
|
class CommunicationProcessor(threading.Thread):
|
||||||
|
Reference in New Issue
Block a user