From 4e80d486926e562c01faa70177248ca78aff93ab Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Wed, 15 Jul 2015 15:54:19 +1000 Subject: [PATCH] Add fixes triggered by TestResponsive --- reader.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/reader.go b/reader.go index 12437d55..02dee969 100644 --- a/reader.go +++ b/reader.go @@ -32,7 +32,9 @@ func (r *Reader) raisePriorities(off int64, n int) { if r.responsive { r.t.cl.addUrgentRequests(r.t.torrent, off, n) } - r.t.cl.readRaisePiecePriorities(r.t.torrent, off, int64(n)+r.readahead) + if !r.responsive || r.readahead != 0 { + r.t.cl.readRaisePiecePriorities(r.t.torrent, off, int64(n)+r.readahead) + } } func (r *Reader) readable(off int64) (ret bool) { @@ -77,7 +79,16 @@ func (r *Reader) waitReadable(off int64) { } func (r *Reader) ReadAt(b []byte, off int64) (n int, err error) { - return r.readAt(b, off) + for { + var n1 int + n1, err = r.readAt(b, off) + n += n1 + b = b[n1:] + off += int64(n1) + if err != nil || len(b) == 0 || n1 == 0 { + return + } + } } func (r *Reader) Read(b []byte) (n int, err error) { -- 2.48.1