Documentation ¶
Overview ¶
Package util contains utility types and functions for godoc.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type RWValue ¶
type RWValue struct {
// contains filtered or unexported fields
}
An RWValue wraps a value and permits mutually exclusive access to it and records the time the value was last set.
type Throttle ¶
type Throttle struct {
// contains filtered or unexported fields
}
A Throttle permits throttling of a goroutine by calling the Throttle method repeatedly.
func NewThrottle ¶
NewThrottle creates a new Throttle with a throttle value r and a minimum allocated run time slice of dt:
r == 0: "empty" throttle; the goroutine is always sleeping r == 1: full throttle; the goroutine is never sleeping
A value of r == 0.6 throttles a goroutine such that it runs approx. 60% of the time, and sleeps approx. 40% of the time. Values of r < 0 or r > 1 are clamped down to values between 0 and 1. Values of dt < 0 are set to 0.
func (*Throttle) Throttle ¶
func (p *Throttle) Throttle()
Throttle calls time.Sleep such that over time the ratio tr/ts between accumulated run (tr) and sleep times (ts) approximates the value 1/(1-r) where r is the throttle value. Throttle returns immediately (w/o sleeping) if less than tm ns have passed since the last call to Throttle.