fix a possible deadlock in flow controller

ref #164
This commit is contained in:
Lucas Clemente
2016-06-03 17:51:03 +02:00
parent f6be8716b5
commit ffacf2f328

View File

@@ -43,9 +43,6 @@ func NewFlowController(streamID protocol.StreamID, connectionParametersManager *
}
func (c *flowController) getSendFlowControlWindow() protocol.ByteCount {
c.mutex.RLock()
defer c.mutex.RUnlock()
if c.sendFlowControlWindow == 0 {
if c.streamID == 0 {
return c.connectionParametersManager.GetSendConnectionFlowControlWindow()
@@ -124,7 +121,9 @@ func (c *flowController) MaybeTriggerBlocked() bool {
return false
}
c.mutex.RLock()
sendFlowControlWindow := c.getSendFlowControlWindow()
c.mutex.RUnlock()
c.mutex.Lock()
defer c.mutex.Unlock()