code: func (it *invDatastoreIter) stop() error {
  	if !it.stopped {
  		it.stopped = true
  		close(it.done)         // signal the inner loop to wake up and exit
  		for range it.results { // wait for the results channel to close
  		}
  	}
  	return it.err
  }
docs: // stop finishes the query, killing the internal goroutine.
  //
  // Once 'stop' is called, calls to 'next' are forbidden. It is OK to call
  // 'stop' again though (it will return exact same value).