              try:
                  self._buffer_tokens.get(block=False, timeout=0.01)
              except Queue.Empty:
                  break
          self._result_tokens.close()
          for worker in self._worker:
              worker.join()
  
      def stop(self):
          """ Stop Workers """
 
</s> remove         logger.debug("Initializing %s: (dispatcher: '%s', index: %s, data: %s)",
 </s> add         logger.trace("Initializing %s: (dispatcher: '%s', index: %s, data: %s)", </s> remove         logger.debug("Initialized %s", self.__class__.__name__)
 </s> add         logger.trace("Initialized %s", self.__class__.__name__) </s> remove         logger.debug("Initialized %s", self.__class__.__name__)
 </s> add         logger.trace("Initialized %s", self.__class__.__name__) </s> remove         logger.debug("Initializing %s: (index: '%s', data: %s, stop_event: %s, queue: %s)",
 </s> add         logger.trace("Initializing %s: (index: '%s', data: %s, stop_event: %s, queue: %s)",
        self._buffer_tokens.close()
              try:
                  self._buffer_tokens.get(block=False, timeout=0.01)
              except Queue.Empty:
                  break
        self._buffer_tokens.close()
          for worker in self._worker:
              worker.join()
  
      def stop(self):
          """ Stop Workers """
keep keep keep keep replace keep keep keep keep keep
 mask shape fix + logging level 
lib/multithreading.py