From: Matt Joiner Date: Mon, 31 Oct 2016 08:05:33 +0000 (+1100) Subject: Reader.Close: Prefer to lock Client in public method X-Git-Tag: v1.0.0~541 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=dc7428db542600734f83f460aa4f1ae77c0b9dc4;p=btrtrc.git Reader.Close: Prefer to lock Client in public method --- diff --git a/reader.go b/reader.go index b3b6fd9b..0336a2fd 100644 --- a/reader.go +++ b/reader.go @@ -208,6 +208,8 @@ func (r *Reader) readOnceAt(b []byte, pos int64, ctxErr *error) (n int, err erro } func (r *Reader) Close() error { + r.t.cl.mu.Lock() + defer r.t.cl.mu.Unlock() r.t.deleteReader(r) r.t = nil return nil diff --git a/t.go b/t.go index b17226be..8454d02b 100644 --- a/t.go +++ b/t.go @@ -136,8 +136,6 @@ func (t *Torrent) addReader(r *Reader) { } func (t *Torrent) deleteReader(r *Reader) { - t.cl.mu.Lock() - defer t.cl.mu.Unlock() delete(t.readers, r) t.readersChanged() }