From 9b0e7eedb2e38ee2ac6f5a41d8d98a64304fd295 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Sun, 16 Jan 2022 00:07:32 -0500 Subject: [PATCH] Fix data race --- server/server.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/server.go b/server/server.go index 06097a2f..d31588e4 100644 --- a/server/server.go +++ b/server/server.go @@ -741,6 +741,7 @@ func (s *Server) handleSubscribeWS(w http.ResponseWriter, r *http.Request, v *vi return err } defer conn.Close() + var wlock sync.Mutex g, ctx := errgroup.WithContext(context.Background()) g.Go(func() error { pongWait := s.config.KeepaliveInterval + wsPongWait @@ -760,6 +761,8 @@ func (s *Server) handleSubscribeWS(w http.ResponseWriter, r *http.Request, v *vi }) g.Go(func() error { ping := func() error { + wlock.Lock() + defer wlock.Unlock() if err := conn.SetWriteDeadline(time.Now().Add(wsWriteWait)); err != nil { return err } @@ -781,6 +784,8 @@ func (s *Server) handleSubscribeWS(w http.ResponseWriter, r *http.Request, v *vi if !filters.Pass(msg) { return nil } + wlock.Lock() + defer wlock.Unlock() if err := conn.SetWriteDeadline(time.Now().Add(wsWriteWait)); err != nil { return err }