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  }