From f91f3da5d2e6eeeffcb6acc147570f515e56d9d0 Mon Sep 17 00:00:00 2001 From: Csaba Kiraly Date: Thu, 16 Feb 2023 09:19:45 +0100 Subject: [PATCH] fixup: segmentShuffleScheduler Signed-off-by: Csaba Kiraly --- DAS/validator.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/DAS/validator.py b/DAS/validator.py index 26d4e6c..0d10425 100644 --- a/DAS/validator.py +++ b/DAS/validator.py @@ -410,9 +410,9 @@ class Validator: # one neighbor needing it). Then it sends each segment that's worth sending # once, in shuffled order. This is repeated until bw limit. while True: - if hasattr(self, 'segmentsToSend') and self.segmentsToSend: - self.logger.debug("TX:%d q:%d", self.statsTxInSlot, len(self.segmentsToSend), extra=self.format) - for s in shuffled(self.segmentsToSend): + if hasattr(self, 'segmentShuffleGen') and self.segmentShuffleGen is not None: + #self.logger.debug("TX:%d queue:%d", self.statsTxInSlot, len(self.segmentsToSend), extra=self.format) + for s in self.segmentShuffleGen: self.logger.debug("%d:%d/%d", s.dim, s.id, s.i, extra=self.format) if s.dim == 0: for _, neigh in shuffledDict(self.rowNeighbors[s.id], self.shuffleNeighbors): @@ -433,6 +433,7 @@ class Validator: if not self.segmentShuffleSchedulerPersist: # remove scheduler state before leaving self.segmentsToSend = [] + self.segmentShuffleGen = None return self.segmentsToSend = [] @@ -460,6 +461,8 @@ class Validator: if not self.segmentsToSend: break + else: + self.segmentShuffleGen = shuffled(self.segmentsToSend) if self.dumbRandomScheduler: # dumb random scheduler picking segments at random and trying to send it