code: def block(self, *args, **kwargs):
          
          LOG.debug(
              '%s on %s (awaitable %s async %s provider %s)',
              'blocking',
              self._func,
              self._is_awaitable,
              self._is_asyncio_provider,
              self._concurrency_provider
          )
  
          if self._deferable:
              raise RuntimeError('Already activated this call by deferring it')
          with self._lock:
              if not hasattr(self, '_result'):
                  try:
                      self._result = (
                          self._concurrency_provider.run_until_complete(self.defer(*args, **kwargs))
                          if self._is_asyncio_provider else self._func(*args, **kwargs)
                      )
                  except queue.Empty:
                      raise CloudTimeoutError("No data received after %.1f seconds." % kwargs.get("timeout", 0))
              self._blocked = True
          return self._result
docs: Call the wrapped function, and wait for the result in a blocking fashion
  
          Returns the result of the function call.
  
          :param args:
          :param kwargs:
          :return: result of function call