12345678910111213141516171819202122232425262728 |
- package h2mux
- import (
- "sync/atomic"
- )
- type AtomicCounter struct {
- count uint64
- }
- func NewAtomicCounter(initCount uint64) *AtomicCounter {
- return &AtomicCounter{count: initCount}
- }
- func (c *AtomicCounter) IncrementBy(number uint64) {
- atomic.AddUint64(&c.count, number)
- }
- // Count returns the current value of counter and reset it to 0
- func (c *AtomicCounter) Count() uint64 {
- return atomic.SwapUint64(&c.count, 0)
- }
- // Value returns the current value of counter
- func (c *AtomicCounter) Value() uint64 {
- return atomic.LoadUint64(&c.count)
- }
|