code: def add_done_callback(self, fn):
          
          if self._result_set:
              _helpers.safe_invoke_callback(fn, self)
              return
  
          self._done_callbacks.append(fn)
  
          if self._polling_thread is None:
              # The polling thread will exit on its own as soon as the operation
              # is done.
              self._polling_thread = _helpers.start_daemon_thread(
                  target=self._blocking_poll
              )
docs: Add a callback to be executed when the operation is complete.
  
          If the operation is not already complete, this will start a helper
          thread to poll for the status of the operation in the background.
  
          Args:
              fn (Callable[Future]): The callback to execute when the operation
                  is complete.