don't error if pipe is already closed.

This commit is contained in:
Darien Raymond 2018-04-23 16:26:29 +02:00
parent 97341693f3
commit a0dc8d19fa
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
1 changed files with 9 additions and 7 deletions

View File

@ -37,13 +37,13 @@ func (p *pipe) getState(forRead bool) error {
}
return nil
case closed:
if forRead {
if !p.data.IsEmpty() {
return nil
}
return io.EOF
if !forRead {
return io.ErrClosedPipe
}
return io.ErrClosedPipe
if !p.data.IsEmpty() {
return nil
}
return io.EOF
case errord:
return io.ErrClosedPipe
default:
@ -139,7 +139,9 @@ func (p *pipe) CloseError() {
p.Lock()
defer p.Unlock()
p.state = errord
if p.state == closed || p.state == errord {
return
}
if !p.data.IsEmpty() {
p.data.Release()