func (ar *abortableReader) Read(p []byte) (int, error) {
	select {
	case <-ar.abort:
		return 0, errors.New("download aborted")
	default:
	}
	return ar.r.Read(p)
}
// Read implements io.Reader.
Read implements io.Reader.
// Read implements io . Reader .
func (ar *abortableReader) Read(p []byte) (int, error) {
	select {
	case <-ar.abort:
		return 0, errors.New("download aborted")
	default:
	}
	return ar.r.Read(p)
}
func ( ar * abortableReader ) Read ( p [ ] byte ) ( int , error ) { select { case <- ar . abort : return 0 , errors . New ( " " ) default : } return ar . r . Read ( p ) }
Read implements io.Reader.
Read implements io . Reader .