// AfterFunc waits for the duration to elapse and then executes a function.
// A Timer is returned that can be stopped.
195382
func (fc *FakeClock) AfterFunc(d time.Duration, f func()) Timer {
	return fc.FakeAfterFunc(d, f)
}
1137609
func after(now, notOnOrAfter time.Time) bool {
	return now.After(notOnOrAfter.Add(allowedClockDrift))
}
719372
func (i *Info) After(t time.Time) bool {
	return i.genTimeMin().After(t)
}
723570
func (e *Epoch) After(epoch Epoch) bool {
	if e.Time == epoch.Time {
		return e.Level < epoch.Level
	}
	return e.Time >= epoch.Time
}
184661
func (tm *Timer) TriggerAfter(duration time.Duration) {
	go func() {
		time.Sleep(duration)
		tm.Trigger()
	}()
}
756599
func (c *Cron) AddFunc(spec string, cmd func()) error {
	return c.AddJob(spec, FuncJob(cmd))
}
573670
func (f *FakeClock) After(d time.Duration) <-chan time.Time {
	f.lock.Lock()
	defer f.lock.Unlock()
	stopTime := f.time.Add(d)
	ch := make(chan time.Time, 1) // Don't block!
	f.waiters = append(f.waiters, fakeClockWaiter{
		targetTime: stopTime,
		destChan:   ch,
	})
	return ch
}
727066
func (ctx *Context) After(hook func()) {
	if ctx.Res.ended.isTrue() { // should not add afterHooks if ctx.Res.ended
		panic(Err.WithMsg(`can't add "after hook" after middleware process ended`))
	}
	ctx.Res.afterHooks = append(ctx.Res.afterHooks, hook)
}
1153826
func (RealClock) After(d time.Duration) <-chan time.Time {
	return time.After(d)
}
400660
func (m *MockClock) After(d time.Duration) <-chan time.Time {
	ch := make(chan time.Time, 1)
	target := m.Now().Add(d)

	go func() {
		for {
			m.cond.L.Lock()
			if !target.After(m.now) {
				now := m.now
				m.cond.L.Unlock()
				ch <- now
				return
			}

			m.cond.Wait()
			m.cond.L.Unlock()
		}
	}()

	return ch
}
704948
func (h Handler) HandleFunc(path string, fn func(w http.ResponseWriter, r *http.Request)) {
	h.mux.HandleFunc(path, fn)
}
834936
func RunFunc(benchmarkFunc func() int, duration time.Duration, c int) *Result {
	workers := make([]Worker, c)
	for i := 0; i < c; i++ {
		workers[i] = &funcWorker{ID: i, benchmarkFunc: benchmarkFunc}
	}
	return Run(workers, duration)
}
108918
func (f *FSM) afterEventCallbacks(e *Event) {
	if fn, ok := f.callbacks[cKey{e.Event, callbackAfterEvent}]; ok {
		fn(e)
	}
	if fn, ok := f.callbacks[cKey{"", callbackAfterEvent}]; ok {
		fn(e)
	}
}
400205
func (mq *MockQuery) After(d time.Duration) *MockQuery {
	return mq.WaitUntil(time.After(d))
}
3043
func (s S) After(f func()) {
	s("", f, func(c *config) { c.after = true })
}
838499
func WrapFunc(handlerFunc http.HandlerFunc) Handler {
	return HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
		handlerFunc(rw, r)
		next(rw, r)
	})
}
86065
func (s Suite) After(f func(*testing.T)) bool {
	return s("", func(t *testing.T, _ G, _ S) {
		t.Helper()
		f(t)
	}, func(c *config) { c.after = true })
}