Commit 6039a414 authored by Russ Cox's avatar Russ Cox

io: fix nil Write bug in Pipe

R=nigeltao_golang
CC=golang-dev
https://golang.org/cl/194132
parent d7a5ccf3
...@@ -39,7 +39,7 @@ func (p *pipe) Read(data []byte) (n int, err os.Error) { ...@@ -39,7 +39,7 @@ func (p *pipe) Read(data []byte) (n int, err os.Error) {
if !p.wclosed { if !p.wclosed {
p.wpend = <-p.cr p.wpend = <-p.cr
} }
if p.wpend == nil { if p.wclosed {
return 0, p.werr return 0, p.werr
} }
p.wtot = 0 p.wtot = 0
......
...@@ -236,3 +236,25 @@ func TestPipeWriteClose(t *testing.T) { ...@@ -236,3 +236,25 @@ func TestPipeWriteClose(t *testing.T) {
} }
} }
} }
func TestWriteEmpty(t *testing.T) {
r, w := Pipe()
go func() {
w.Write([]byte{})
w.Close()
}()
var b [2]byte
ReadFull(r, b[0:2])
r.Close()
}
func TestWriteNil(t *testing.T) {
r, w := Pipe()
go func() {
w.Write(nil)
w.Close()
}()
var b [2]byte
ReadFull(r, b[0:2])
r.Close()
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment