RussellLuo/timingwheel

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

Opened this issue · 0 comments

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()

}