mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2025-01-03 17:44:29 +00:00
fix queues
This commit is contained in:
parent
4916d21cd3
commit
e4545fe627
@ -19,7 +19,6 @@ package txpool
|
||||
import (
|
||||
"container/heap"
|
||||
"context"
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@ -75,27 +74,30 @@ type MetaTx struct {
|
||||
|
||||
type BestQueue []*MetaTx
|
||||
|
||||
func (pq BestQueue) Len() int { return len(pq) }
|
||||
func (pq BestQueue) Less(i, j int) bool { return pq[i].SubPool < pq[j].SubPool } // We want Pop to give us the highest, not lowest, priority so we use greater than here.
|
||||
func (pq BestQueue) Swap(i, j int) {
|
||||
pq[i], pq[j] = pq[j], pq[i]
|
||||
pq[i].bestIndex = i
|
||||
pq[j].bestIndex = j
|
||||
func (p BestQueue) Len() int { return len(p) }
|
||||
func (p BestQueue) Less(i, j int) bool { return p[i].SubPool < p[j].SubPool } // We want Pop to give us the highest, not lowest, priority so we use greater than here.
|
||||
func (p BestQueue) Swap(i, j int) {
|
||||
p[i], p[j] = p[j], p[i]
|
||||
p[i].bestIndex = i
|
||||
p[j].bestIndex = j
|
||||
}
|
||||
func (pq *BestQueue) Push(x interface{}) {
|
||||
n := len(*pq)
|
||||
func (p *BestQueue) Push(x interface{}) {
|
||||
n := len(*p)
|
||||
item := x.(*MetaTx)
|
||||
item.bestIndex = n
|
||||
*pq = append(*pq, item)
|
||||
*p = append(*p, item)
|
||||
}
|
||||
|
||||
func (pq *BestQueue) Pop() interface{} {
|
||||
old := *pq
|
||||
func (p *BestQueue) Pop() interface{} {
|
||||
if len(*p) == 0 {
|
||||
return nil
|
||||
}
|
||||
old := *p
|
||||
n := len(old)
|
||||
item := old[n-1]
|
||||
old[n-1] = nil // avoid memory leak
|
||||
item.bestIndex = -1 // for safety
|
||||
*pq = old[0 : n-1]
|
||||
*p = old[0 : n-1]
|
||||
return item
|
||||
}
|
||||
|
||||
@ -115,6 +117,9 @@ func (p *WorstQueue) Push(x interface{}) {
|
||||
*p = append(*p, x.(*MetaTx))
|
||||
}
|
||||
func (p *WorstQueue) Pop() interface{} {
|
||||
if len(*p) == 0 {
|
||||
return nil
|
||||
}
|
||||
old := *p
|
||||
n := len(old)
|
||||
item := old[n-1]
|
||||
@ -241,9 +246,6 @@ func PromoteStep(pending, baseFee, queued *SubPool) {
|
||||
continue
|
||||
}
|
||||
|
||||
fmt.Printf("from queued: %b\n", queued.Best().SubPool)
|
||||
bb := queued.PopBest()
|
||||
fmt.Printf("from queued2: %b\n", bb.SubPool)
|
||||
pending.Add(queued.PopBest())
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user