]> Cypherpunks repositories - gostls13.git/commitdiff
io: make MultiReader nil exhausted Readers for earlier GC
authorBrad Fitzpatrick <bradfitz@golang.org>
Mon, 5 Sep 2016 20:16:16 +0000 (20:16 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 5 Sep 2016 21:13:11 +0000 (21:13 +0000)
No test because the language spec makes no promises in this area.

Fixes #16983

Change-Id: I1a6aa7ff87dd14aa27e8400040a6f6fc908aa1fd
Reviewed-on: https://go-review.googlesource.com/28533
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
src/io/multi.go

index 3a9d03652b07e67e7e09d122c4133e86a89cc3c7..46e45a60e8b7f3ba719f3146f52a7330bf58c0e8 100644 (file)
@@ -19,6 +19,7 @@ func (mr *multiReader) Read(p []byte) (n int, err error) {
                }
                n, err = mr.readers[0].Read(p)
                if err == EOF {
+                       mr.readers[0] = nil // permit earlier GC
                        mr.readers = mr.readers[1:]
                }
                if n > 0 || err != EOF {