zinx icon indicating copy to clipboard operation
zinx copied to clipboard

【bug】ztimer包中,开启时间轮,并向里面注册延迟方法后,无法在时间到达前反注册

Open yilinershi opened this issue 5 years ago • 1 comments

附上测试代码:


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

yilinershi avatar Oct 21 '20 03:10 yilinershi

感谢提供,已经merge了你提交的pr。

aceld avatar Oct 27 '20 08:10 aceld