package mhayaTimeWheel import ( "fmt" "log" "testing" "time" ) func TestAddFunc(t *testing.T) { tw := NewTimeWheel(time.Millisecond, 20) tw.Start() defer tw.Stop() id1 := NextId() tw.AfterFunc(id1, time.Second, func() { fmt.Println("The timer fires") }) fmt.Println(id1) id2 := NextId() tw.AddEveryFunc(id2, 500*time.Millisecond, func() { log.Println("500 Millisecond") }) fmt.Println(id2) for i := 0; i < 10000; i++ { tw.BuildEveryFunc(10*time.Millisecond, func() { go log.Println("10 Millisecond") }) } time.Sleep(time.Hour) }