code: func AcquireTimer(timeout time.Duration) *time.Timer {
  	v := timerPool.Get()
  	if v == nil {
  		return time.NewTimer(timeout)
  	}
  	t := v.(*time.Timer)
  	initTimer(t, timeout)
  	return t
  }
docs: // AcquireTimer returns a time.Timer from the pool and updates it to
  // send the current time on its channel after at least timeout.
  //
  // The returned Timer may be returned to the pool with ReleaseTimer
  // when no longer needed. This allows reducing GC load.