From 3ea7cd9385239e9ae0b09846cafc63f0a36f2502 Mon Sep 17 00:00:00 2001 From: Gian Biondi Date: Thu, 30 Apr 2015 14:04:47 -0400 Subject: [PATCH] Adds mutex when reading goaway flag --- transport/http2_server.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/transport/http2_server.go b/transport/http2_server.go index 07913377..8bff1b96 100644 --- a/transport/http2_server.go +++ b/transport/http2_server.go @@ -130,7 +130,6 @@ func newHTTP2Server(conn net.Conn, maxStreams uint32) (_ ServerTransport, err er shutdownChan: make(chan struct{}), activeStreams: make(map[uint32]*Stream), streamSendQuota: defaultWindowSize, - goaway: false, } go t.controller() t.writableChan <- 0 @@ -165,11 +164,12 @@ func (t *http2Server) operateHeaders(hDec *hpackDecoder, s *Stream, frame header if !endHeaders { return s } + t.mu.Lock() if t.goaway { //Stop creating streams on this transport + t.mu.Unlock() return nil } - t.mu.Lock() if t.state != reachable { t.mu.Unlock() return nil