diff --git a/timer.go b/timer.go index 2896d46..aee313f 100644 --- a/timer.go +++ b/timer.go @@ -345,6 +345,11 @@ func (this *XTimer) internalDelete(timer *XTimerList, isDestory bool, toFreeList if !timer.attachEntry.Empty() { timer.attachEntry.DelInit() } + for !timer.destoryHandleList.Empty() { + handle := timer.destoryHandleList.FirstEntry().(XTimerDestoryHandleNode) + handle.entry.DelInit() + handle.cb() + } if isDestory { timer.cb(TIMER_DESTORY_EVENT, nil) } else { @@ -355,11 +360,6 @@ func (this *XTimer) internalDelete(timer *XTimerList, isDestory bool, toFreeList timer.wp.timer = nil timer.wp = nil } - for !timer.destoryHandleList.Empty() { - handle := timer.destoryHandleList.FirstEntry().(XTimerDestoryHandleNode) - handle.entry.DelInit() - handle.cb() - } if toFreeList { this.addToFreeList(timer) }