p2p/enode: closed channel not needed in bufferIter

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
Csaba Kiraly 2025-04-28 17:05:42 +02:00
parent c29688a255
commit 2a9b0605ee
No known key found for this signature in database
GPG key ID: 0FE274EE8C95166E

View file

@ -238,7 +238,6 @@ type BufferIter struct {
it Iterator it Iterator
buffer chan *Node buffer chan *Node
head *Node head *Node
closed chan struct{}
closeOnce sync.Once closeOnce sync.Once
} }
@ -247,8 +246,6 @@ func NewBufferIter(it Iterator, size int) Iterator {
b := BufferIter{ b := BufferIter{
it: it, it: it,
buffer: make(chan *Node, size), buffer: make(chan *Node, size),
head: nil,
closed: make(chan struct{}),
} }
go func() { go func() {
@ -256,22 +253,14 @@ func NewBufferIter(it Iterator, size int) Iterator {
defer close(b.buffer) defer close(b.buffer)
// If instead the bufferIterator is closed, we bail out of the loop. // If instead the bufferIterator is closed, we bail out of the loop.
for b.it.Next() { for b.it.Next() {
select { b.buffer <- b.it.Node()
case b.buffer <- b.it.Node():
case <-b.closed:
return
}
} }
}() }()
return &b return &b
} }
func (b *BufferIter) Next() bool { func (b *BufferIter) Next() bool {
select { b.head = <-b.buffer
case b.head = <-b.buffer:
case <-b.closed:
b.head = nil
}
return b.head != nil return b.head != nil
} }
@ -282,7 +271,6 @@ func (b *BufferIter) Node() *Node {
func (b *BufferIter) Close() { func (b *BufferIter) Close() {
b.closeOnce.Do(func() { b.closeOnce.Do(func() {
b.it.Close() b.it.Close()
close(b.closed)
// Wait for Next to terminate. // Wait for Next to terminate.
for range b.buffer { for range b.buffer {
} }