Ver Fonte

Fix race for recvBuf

Erik Dubbelboer há 8 anos atrás
pai
commit
f30b49b217
1 ficheiros alterados com 3 adições e 0 exclusões
  1. 3 0
      stream.go

+ 3 - 0
stream.go

@@ -91,10 +91,13 @@ START:
 	case streamRemoteClose:
 		fallthrough
 	case streamClosed:
+		s.recvLock.Lock()
 		if s.recvBuf == nil || s.recvBuf.Len() == 0 {
+			s.recvLock.Unlock()
 			s.stateLock.Unlock()
 			return 0, io.EOF
 		}
+		s.recvLock.Unlock()
 	case streamReset:
 		s.stateLock.Unlock()
 		return 0, ErrConnectionReset