Closed bwb0101 closed 1 year ago
func (r *nodeBased[T]) SingleProducerOffer(valueSupplier func() (v T, finish bool)) { v, finish := valueSupplier() if finish { return }
for r.Offer(v) { 这的作用是直到加成功为止吧?不应该是 !r.Offer吗? }
}
看了下确实是的,而且代码逻辑也不对。
NodeBased 因为还没有实现 SPMC 和 MPSC 的能力,所以当初只是为了满足 interface 顺手写了个 wrapper,测试也没有覆盖到,没想到挖坑了。
我会先拿测试保护起来,感谢指正,谢谢!
的确看起来怪怪的😁
func (r *nodeBased[T]) SingleProducerOffer(valueSupplier func() (v T, finish bool)) { v, finish := valueSupplier() if finish { return }
}