Patch for concurrent iterator & others (onto v1.11.6) #386

Closed
roysc wants to merge 1565 commits from v1.11.6-statediff-v5 into master
Showing only changes of commit 7033724522 - Show all commits

View File

@ -34,16 +34,20 @@ type testIter struct {
}
func (i *testIter) Next() bool {
i.waitCh <- struct{}{}
if _, ok := <-i.waitCh; !ok {
return false
}
i.node = <-i.nodeCh
return i.node != nil
return true
}
func (i *testIter) Node() *enode.Node {
return i.node
}
func (i *testIter) Close() {}
func (i *testIter) Close() {
close(i.waitCh)
}
func (i *testIter) push() {
var id enode.ID
@ -53,7 +57,7 @@ func (i *testIter) push() {
func (i *testIter) waiting(timeout time.Duration) bool {
select {
case <-i.waitCh:
case i.waitCh <- struct{}{}:
return true
case <-time.After(timeout):
return false