Skip to content

Commit

Permalink
fix: sync/atomic bug, fix fatedier#1804 (fatedier#1805)
Browse files Browse the repository at this point in the history

Co-authored-by: tanghuafa <[email protected]>
  • Loading branch information
bingtianbaihua and tanghuafa authored May 12, 2020
1 parent bd6435c commit 228e225
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 17 deletions.
10 changes: 5 additions & 5 deletions models/metrics/mem/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,12 +177,12 @@ func (m *serverMetrics) GetServer() *ServerStats {
s := &ServerStats{
TotalTrafficIn: m.info.TotalTrafficIn.TodayCount(),
TotalTrafficOut: m.info.TotalTrafficOut.TodayCount(),
CurConns: m.info.CurConns.Count(),
ClientCounts: m.info.ClientCounts.Count(),
CurConns: int64(m.info.CurConns.Count()),
ClientCounts: int64(m.info.ClientCounts.Count()),
ProxyTypeCounts: make(map[string]int64),
}
for k, v := range m.info.ProxyTypeCounts {
s.ProxyTypeCounts[k] = v.Count()
s.ProxyTypeCounts[k] = int64(v.Count())
}
return s
}
Expand All @@ -202,7 +202,7 @@ func (m *serverMetrics) GetProxiesByType(proxyType string) []*ProxyStats {
Type: proxyStats.ProxyType,
TodayTrafficIn: proxyStats.TrafficIn.TodayCount(),
TodayTrafficOut: proxyStats.TrafficOut.TodayCount(),
CurConns: proxyStats.CurConns.Count(),
CurConns: int64(proxyStats.CurConns.Count()),
}
if !proxyStats.LastStartTime.IsZero() {
ps.LastStartTime = proxyStats.LastStartTime.Format("01-02 15:04:05")
Expand Down Expand Up @@ -233,7 +233,7 @@ func (m *serverMetrics) GetProxiesByTypeAndName(proxyType string, proxyName stri
Type: proxyStats.ProxyType,
TodayTrafficIn: proxyStats.TrafficIn.TodayCount(),
TodayTrafficOut: proxyStats.TrafficOut.TodayCount(),
CurConns: proxyStats.CurConns.Count(),
CurConns: int64(proxyStats.CurConns.Count()),
}
if !proxyStats.LastStartTime.IsZero() {
res.LastStartTime = proxyStats.LastStartTime.Format("01-02 15:04:05")
Expand Down
1 change: 1 addition & 0 deletions tests/util/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ func SendUdpMsg(addr string, msg string) (res string, err error) {
return
}

conn.SetReadDeadline(time.Now().Add(10 * time.Second))
buf := make([]byte, 2048)
n, errRet := conn.Read(buf)
if errRet != nil {
Expand Down
24 changes: 12 additions & 12 deletions utils/metric/counter.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ import (
)

type Counter interface {
Count() int64
Inc(int64)
Dec(int64)
Count() int32
Inc(int32)
Dec(int32)
Snapshot() Counter
Clear()
}
Expand All @@ -33,28 +33,28 @@ func NewCounter() Counter {
}

type StandardCounter struct {
count int64
count int32
}

func (c *StandardCounter) Count() int64 {
return atomic.LoadInt64(&c.count)
func (c *StandardCounter) Count() int32 {
return atomic.LoadInt32(&c.count)
}

func (c *StandardCounter) Inc(count int64) {
atomic.AddInt64(&c.count, count)
func (c *StandardCounter) Inc(count int32) {
atomic.AddInt32(&c.count, count)
}

func (c *StandardCounter) Dec(count int64) {
atomic.AddInt64(&c.count, -count)
func (c *StandardCounter) Dec(count int32) {
atomic.AddInt32(&c.count, -count)
}

func (c *StandardCounter) Snapshot() Counter {
tmp := &StandardCounter{
count: atomic.LoadInt64(&c.count),
count: atomic.LoadInt32(&c.count),
}
return tmp
}

func (c *StandardCounter) Clear() {
atomic.StoreInt64(&c.count, 0)
atomic.StoreInt32(&c.count, 0)
}

0 comments on commit 228e225

Please sign in to comment.