github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/metric/counter.go (about) 1 package metric 2 3 import "sync/atomic" 4 5 type Counter struct { 6 cur int64 7 } 8 9 func (m *Counter) Inc() { 10 atomic.AddInt64((*int64)(&m.cur), 1) 11 } 12 13 func (m *Counter) IncDelta(delta int) { 14 atomic.AddInt64((*int64)(&m.cur), int64(delta)) 15 } 16 17 func (m *Counter) Delta() float64 { 18 cur := atomic.SwapInt64((*int64)(&m.cur), 0) 19 return float64(cur) 20 }