Commit 36b2d792 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Common - MutexQueues:

- Added safety control
parent bb094bf1
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -35,7 +35,7 @@
#           self.mutex_queues.signal_done(device_uuid)
#           self.mutex_queues.signal_done(device_uuid)


import threading
import threading
from queue import Queue
from queue import Queue, Empty
from typing import Dict
from typing import Dict


class MutexQueues:
class MutexQueues:
@@ -67,8 +67,11 @@ class MutexQueues:
        with self.lock:
        with self.lock:
            queue : Queue = self.mutex_queues.setdefault(queue_name, Queue())
            queue : Queue = self.mutex_queues.setdefault(queue_name, Queue())
            
            
            # remove muself from the queue
            # remove myself from the queue
            queue.get_nowait()
            try:
                queue.get(block=True, timeout=0.1)
            except Empty:
                pass


            # if there are no other tasks queued, return
            # if there are no other tasks queued, return
            if queue.qsize() == 0: return
            if queue.qsize() == 0: return