diff --git a/go/store/nbs/s3_table_reader.go b/go/store/nbs/s3_table_reader.go index ba495c4686..dda82631df 100644 --- a/go/store/nbs/s3_table_reader.go +++ b/go/store/nbs/s3_table_reader.go @@ -178,7 +178,6 @@ func (s3or *s3ObjectReader) readRange(ctx context.Context, name addr, p []byte, } } } - //cancelableReader := NewCancelableReader(ctx, result.Body) n, err = io.ReadFull(result.Body, p) return n, sz, err } @@ -210,53 +209,3 @@ func isConnReset(err error) bool { scErr, ok := nErr.Err.(*os.SyscallError) return ok && scErr.Err == syscall.ECONNRESET } - -type CancelableReader struct { - ctx context.Context - data chan []byte - err error - r io.Reader -} - -func (c *CancelableReader) begin() { - buf := make([]byte, 1024) - for { - if c.ctx.Err() != nil { - return - } - n, err := c.r.Read(buf) - if n > 0 { - tmp := make([]byte, n) - copy(tmp, buf[:n]) - c.data <- tmp - } - if err != nil { - c.err = err - close(c.data) - return - } - } -} - -func (c *CancelableReader) Read(p []byte) (int, error) { - select { - case <-c.ctx.Done(): - return 0, c.ctx.Err() - case d, ok := <-c.data: - if !ok { - return 0, c.err - } - copy(p, d) - return len(d), nil - } -} - -func NewCancelableReader(ctx context.Context, r io.Reader) *CancelableReader { - c := &CancelableReader{ - r: r, - ctx: ctx, - data: make(chan []byte), - } - go c.begin() - return c -}