RussellLuo / timingwheel

Golang implementation of Hierarchical Timing Wheels.
MIT License
656 stars 121 forks source link

请教添加任务时的解锁时机问题 #51

Open ddb12138 opened 6 months ago

ddb12138 commented 6 months ago

bucket.go中,添加任务时Add函数,它的解锁操作是在末尾 为什么不考虑在添加任务至timers双向链表后立马解锁呢?我的理解是bucket这个锁就是为了保护 timers是一个并发不安全的结构 @RussellLuo

func (b bucket) Add(t Timer) { b.mu.Lock()

e := b.timers.PushBack(t)
    // b.mu.Unlock() 为什么不在这个位置进行解锁?
t.setBucket(b)
t.element = e

b.mu.Unlock()

}