func readRoutine()

in azkustodata/query/v2/iterative_dataset.go [80:111]


func readRoutine(reader *frameReader, d *iterativeDataset) {
	loop := true

	for loop {
		line, err := reader.advance()
		if err != nil {
			if err != io.EOF {
				select {
				case <-d.Context().Done():
				// When we send data, we always make sure that the context isn't cancelled, so we don't block forever.
				case d.jsonData <- err:
				}
			}
			loop = false
		} else {
			select {
			case <-d.Context().Done():
				loop = false
			case d.jsonData <- line:
			}
		}
	}

	if err := reader.close(); err != nil {
		select {
		case <-d.Context().Done():
		case d.jsonData <- err:
		}
	}

	close(d.jsonData)
}