Exemple #1
0
 def clear_jobs(self):
     """Clear current Job queue and start fresh."""
     if self._jobs.empty():
         # Guards against getting stuck waiting for self._mutex when
         # thread is waiting for self._jobs to not be empty.
         return
     with self._mutex:
         self._cleared = True
         self._jobs = PriorityQueue()
Exemple #2
0
 def __init__(self, bot):
     """Requires bot as argument for logging."""
     threading.Thread.__init__(self)
     self.bot = bot
     self._jobs = PriorityQueue()
     # While PriorityQueue it self is thread safe, this mutex is needed
     # to stop old jobs being put into new queue after clearing the
     # queue.
     self._mutex = threading.Lock()
     # self.cleared is used for more fine grained locking.
     self._cleared = False