From: Matt Joiner Date: Wed, 15 Jul 2015 05:54:19 +0000 (+1000) Subject: Add fixes triggered by TestResponsive X-Git-Tag: v1.0.0~1122 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=4e80d486926e562c01faa70177248ca78aff93ab;p=btrtrc.git Add fixes triggered by TestResponsive --- 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) {