code: def _consume_queue_execution(self, fn):
      
  
      # `finally` fires after all success or exceptions
      # exceptions are handled in derived classes
      # and uncaught ones are caught as a last resort
      # in _consume_queue to be raised on the main thread.
      try:
        fn()
      finally:
        with self._processed_lock:
          self.processed += 1
          self._queue.task_done()
docs: The actual task execution in each thread. This
      is broken out so that exceptions can be caught
      in derived classes and allow them to manipulate 
      the errant task, e.g. putting it back in the queue
      for a retry.
  
      Every task processed will automatically be marked complete.
  
      Required:
        [0] fn: A curried function that includes the interface
                as its first argument.
      Returns: void