code: func NewCondTimer(condition timer.Condition, fn timer.Func) (*timer.Timer, error) {
  	if condition == nil {
  		return nil, constants.ErrNilCondition
  	}
  
  	t := NewCountTimer(time.Duration(math.MaxInt64), timer.LoopForever, fn)
  	t.SetCondition(condition)
  	return t, nil
  }
docs: // NewCondTimer returns a new Timer containing a function that will be called
  // when condition satisfied that specified by the condition argument.
  // The duration d must be greater than zero; if not, NewCondTimer will panic.
  // Stop the timer to release associated resources.