func (t *traverser) readFile(sq *seq.Sequencer, fid *g9pc.NsFile, path string) { t.printf("readFile %s", path) sq, results := sq.Subsequencer("readFile") go func() { _, ok := <-results // open if !ok { t.printf("cannot open %s: %v", path, sq.Error()) return } <-results // stream _, ok = <-results if ok { panic("expected closed") } sq.Result(seq.StringResult("readFile"), sq.Error()) }() sq.Do(fid.File(), seq.OpenReq{g9p.OREAD}) rd := fid.SeqReadStream(sq, 20, 8192) tot, _ := io.Copy(nullWriter{}, rd) t.printf("%10d %s", tot, path) sq.Do(nil, nil) }