fix a potential logic race

This commit is contained in:
xtaci
2019-04-18 14:09:03 +08:00
parent 11b388cc29
commit d568d23290
+8 -3
View File
@@ -113,9 +113,14 @@ func (s *Session) OpenStream() (*Stream, error) {
}
s.streamLock.Lock()
s.streams[sid] = stream
s.streamLock.Unlock()
return stream, nil
defer s.streamLock.Unlock()
select {
case <-s.die:
return nil, errors.New(errBrokenPipe)
default:
s.streams[sid] = stream
return stream, nil
}
}
// AcceptStream is used to block until the next available stream