code: def _design_poll(self, name, mode, oldres, timeout=5, use_devmode=False):
          
          if not timeout:
              return True
  
          if timeout < 0:
              raise ArgumentError.pyexc("Interval must not be negative")
  
          t_end = time.time() + timeout
          old_rev = None
  
          if oldres:
              old_rev = self._doc_rev(oldres)
  
          while time.time() < t_end:
              try:
                  cur_resp = self.design_get(name, use_devmode=use_devmode)
                  if old_rev and self._doc_rev(cur_resp) == old_rev:
                      continue
  
                  try:
                      if not self._poll_vq_single(
                              name, use_devmode, cur_resp.value):
                          continue
                      return True
  
                  except CouchbaseError:
                      continue
  
              except CouchbaseError:
                  if mode == 'del':
                      # Deleted, whopee!
                      return True
  
          raise exceptions.TimeoutError.pyexc(
              "Wait time for design action completion exceeded")
docs: Poll for an 'async' action to be complete.
          :param string name: The name of the design document
          :param string mode: One of ``add`` or ``del`` to indicate whether
              we should check for addition or deletion of the document
          :param oldres: The old result from the document's previous state, if
              any
          :param float timeout: How long to poll for. If this is 0 then this
              function returns immediately
          :type oldres: :class:`~couchbase.result.HttpResult`