var debugCounter …
var CrashOnBugs …
func debugPrintf(format string, args ...any) { … }
func debugFatalf(format string, args ...any) { … }
type Counter …
func (c *Counter) Name() string { … }
type counterPtr …
type counterState …
func (s *counterState) load() counterStateBits { … }
func (s *counterState) update(old *counterStateBits, new counterStateBits) bool { … }
type counterStateBits …
const stateReaders …
const stateLocked …
const stateHavePtr …
const stateExtraShift …
const stateExtra …
func (b counterStateBits) readers() int { … }
func (b counterStateBits) locked() bool { … }
func (b counterStateBits) havePtr() bool { … }
func (b counterStateBits) extra() uint64 { … }
func (b counterStateBits) incReader() counterStateBits { … }
func (b counterStateBits) decReader() counterStateBits { … }
func (b counterStateBits) setLocked() counterStateBits { … }
func (b counterStateBits) clearLocked() counterStateBits { … }
func (b counterStateBits) setHavePtr() counterStateBits { … }
func (b counterStateBits) clearHavePtr() counterStateBits { … }
func (b counterStateBits) clearExtra() counterStateBits { … }
func (b counterStateBits) addExtra(n uint64) counterStateBits { … }
func New(name string) *Counter { … }
func (c *Counter) Inc() { … }
func (c *Counter) Add(n int64) { … }
func (c *Counter) releaseReader(state counterStateBits) { … }
func (c *Counter) releaseLock(state counterStateBits) { … }
func (c *Counter) add(n uint64) uint64 { … }
func (c *Counter) invalidate() { … }
func (c *Counter) refresh() { … }
func Read(c *Counter) (uint64, error) { … }
func readFile(f *file) (*File, error) { … }
func ReadFile(name string) (counters, stackCounters map[string]uint64, _ error) { … }
func ReadMapped(name string) ([]byte, error) { … }