packer/rpc: make sure curID in MuxConn is highest [GH-705]

This commit is contained in:
Mitchell Hashimoto 2013-12-12 00:36:49 -08:00
parent a2f46a989f
commit da9f88ece7
1 changed files with 6 additions and 2 deletions

View File

@ -300,10 +300,14 @@ func (m *MuxConn) loop() {
case streamStateFinWait2: case streamStateFinWait2:
stream.remoteClose() stream.remoteClose()
// Remove this stream from being active so that it
// can be re-used
m.mu.Lock() m.mu.Lock()
delete(m.streams, stream.id) delete(m.streams, stream.id)
// Make sure we attempt to use the next biggest stream ID
if stream.id >= m.curId {
m.curId = stream.id + 1
}
m.mu.Unlock() m.mu.Unlock()
default: default:
log.Printf("[ERR] Fin received for stream %d in state: %d", id, stream.state) log.Printf("[ERR] Fin received for stream %d in state: %d", id, stream.state)