Переглянути джерело

Protect writes to DataReady with mutex lock

Bruce Marriner 8 роки тому
батько
коміт
11f11de41c
1 змінених файлів з 4 додано та 0 видалено
  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: