code: def _set_future_result(self):
          
          # This must be done in a lock to prevent the polling thread
          # and main thread from both executing the completion logic
          # at the same time.
          with self._completion_lock:
              # If the operation isn't complete or if the result has already been
              # set, do not call set_result/set_exception again.
              # Note: self._result_set is set to True in set_result and
              # set_exception, in case those methods are invoked directly.
              if self.state != _DONE_STATE or self._result_set:
                  return
  
              if self.error_result is not None:
                  exception = _error_result_to_exception(self.error_result)
                  self.set_exception(exception)
              else:
                  self.set_result(self)
docs: Set the result or exception from the job if it is complete.