timer.go
func (t *Timer) Get(name string) *Counter {
	if c, exist := t.routes[name]; exist {
		return c
	}
	t.mux.Lock()
	defer t.mux.Unlock()
	// could be a race so check again
	// could loose som small data but good not to
	if c, exist := t.routes[name]; exist {
		return c
	}
	t.routes[name] = &Counter{}
	t.routes[name].Min = 1<<63 - 1
	return t.routes[name]
}
func (t *Timer) Get(name string) *Counter {
	if c, exist := t.routes[name]; exist {
		return c
	}
	t.mux.Lock()
	defer t.mux.Unlock()
	// could be a race so check again
	// could loose som small data but good not to
	if c, exist := t.routes[name]; exist {
		return c
	}
	t.routes[name] = &Counter{}
	t.routes[name].Min = 1<<63 - 1
	return t.routes[name]
}
func ( t * Timer ) Get ( name string ) * Counter { if c , exist := t . routes [ name ] ; exist { return c } t . mux . Lock ( ) defer t . mux . Unlock ( ) // could be a race so check again // could loose som small data but good not to if c , exist := t . routes [ name ] ; exist { return c } t . routes [ name ] = & Counter { } t . routes [ name ] . Min = 1 << 63 - 1 return t . routes [ name ] }
// Get returns a Counter for a route.
// If there is no entry it will create a new one.
// It will lock during creation
Get returns a Counter for a route . If there is no entry it will create a new one . It will lock during creation