Explorar o código

Protect writes to DataReady with mutex lock

Bruce Marriner %!s(int64=8) %!d(string=hai) anos
pai
achega
11f11de41c
Modificáronse 1 ficheiros con 4 adicións e 0 borrados
  1. 4 0
      wsapi.go

+ 4 - 0
wsapi.go

@@ -194,10 +194,14 @@ func (s *Session) heartbeat(wsConn *websocket.Conn, listening <-chan interface{}
 		s.wsMutex.Unlock()
 		if err != nil {
 			s.log(LogError, "error sending heartbeat to gateway %s, %s", s.gateway, err)
+			s.Lock()
 			s.DataReady = false
+			s.Unlock()
 			return
 		}
+		s.Lock()
 		s.DataReady = true
+		s.Unlock()
 
 		select {
 		case <-ticker.C: