zinx
zinx copied to clipboard
【bug】ztimer包中,开启时间轮,并向里面注册延迟方法后,无法在时间到达前反注册
附上测试代码:
var Scheduler *ztimer.TimerScheduler
func init() {
Scheduler = ztimer.NewAutoExecTimerScheduler()
}
f1 := ztimer.NewDelayFunc(func(v ...interface{}) {
log.Println("aaaaaa")
}, []interface{}{})
f2 := ztimer.NewDelayFunc(func(v ...interface{}) {
log.Println("bbbbbb")
}, []interface{}{})
timerId1,_:=Scheduler.CreateTimerAfter(f1, time.Duration(3)*time.Second)
timerId2,_:=Scheduler.CreateTimerAfter(f2, time.Duration(5)*time.Second)
log.Printf("timerId=%d ,timerId2=%d\n",timerId1,timerId2)
Scheduler.CancelTimer(timerId1) //删除timerId1
预期结果:5秒后打印bbbbbb 实际结果:3秒后打印aaaaaa,5秒后打印bbbbbb
感谢提供,已经merge了你提交的pr。