in mock.go [29:49]
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
}