From dbe74dd6c5fca211e2cea1a4a80e020b465583de Mon Sep 17 00:00:00 2001 From: Gian Biondi Date: Wed, 29 Apr 2015 15:13:31 -0400 Subject: [PATCH] Adds mutex lock on setting goaway flag --- transport/http2_server.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/transport/http2_server.go b/transport/http2_server.go index 2ccbe987..9a4f0dfa 100644 --- a/transport/http2_server.go +++ b/transport/http2_server.go @@ -146,7 +146,7 @@ func (t *http2Server) operateHeaders(hDec *hpackDecoder, s *Stream, frame header hDec.state = decodeState{} } }() - if goaway { + if t.goaway { //Stop creating streams on this transport return nil } @@ -410,7 +410,9 @@ func (t *http2Server) handleWindowUpdate(f *http2.WindowUpdateFrame) { } func (t *http2Server) handleGoAway(f *http2.GoAwayFrame) { + t.mu.Lock() t.goaway = true + t.mu.Unlock() for id, _ := range t.activeStreams { if id > f.LastStreamID { if s, ok := t.activeStreams[f.LastStreamID]; ok {