소스 검색

etcdserver/stats: fix stats data race.

disksing 7 년 전
부모
커밋
ba59bb2c2b
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      etcdserver/stats/server.go

+ 2 - 2
etcdserver/stats/server.go

@@ -74,10 +74,10 @@ type serverStats struct {
 func (ss *ServerStats) JSON() []byte {
 	ss.Lock()
 	stats := ss.serverStats
-	ss.Unlock()
-	stats.LeaderInfo.Uptime = time.Since(stats.LeaderInfo.StartTime).String()
 	stats.SendingPkgRate, stats.SendingBandwidthRate = stats.sendRateQueue.Rate()
 	stats.RecvingPkgRate, stats.RecvingBandwidthRate = stats.recvRateQueue.Rate()
+	ss.Unlock()
+	stats.LeaderInfo.Uptime = time.Since(stats.LeaderInfo.StartTime).String()
 	b, err := json.Marshal(stats)
 	// TODO(jonboulle): appropriate error handling?
 	if err != nil {