          raise error[1].with_traceback(error[2])
  
      def start(self):
          """ Start a thread with the given method and args """
          logger.debug("Starting thread(s): '%s'", self._name)
          for idx in range(self._thread_count):
              name = "{}_{}".format(self._name, idx)
              logger.debug("Starting thread %s of %s: '%s'",
 
</s> remove         if self._thread is not None:
 </s> add         logger.debug("Setting thread")
        if self._thread is not None and self._thread.is_alive():
            logger.debug("Thread pre-exists and is alive: %s", self._thread) </s> remove                 # All black frames will return not np.any() so check dims too
 </s> add                 # All black frames will return not numpy.any() so check dims too </s> remove         logger.trace(self._thread)
 </s> add         logger.debug("Set thread: %s", self._thread)
    def is_alive(self):
        """ Return true if any thread is alive else false """
        return any(thread.is_alive() for thread in self._threads)

          raise error[1].with_traceback(error[2])
  
    def is_alive(self):
        """ Return true if any thread is alive else false """
        return any(thread.is_alive() for thread in self._threads)

      def start(self):
          """ Start a thread with the given method and args """
          logger.debug("Starting thread(s): '%s'", self._name)
          for idx in range(self._thread_count):
              name = "{}_{}".format(self._name, idx)
              logger.debug("Starting thread %s of %s: '%s'",
keep add keep keep keep keep keep keep
 Bugfix: Extract - Fix serial processing 
lib/multithreading.py