code: def pull(self):
          
          # n.b. pull is now somewhat misleadingly named because it doesn't do anything
          # the connection isn't touched until you try and iterate the generator we return
          lock_acquired = self._pull_lock.acquire(blocking=False)
          if not lock_acquired:
              raise PullOrderException()
          return self._results_generator()
docs: Returns a generator containing the results of the next query in the pipeline