common/prque: generic priority queue (#26290)
* common, core, eth, les, trie: make prque generic * les/vflux/server: fixed issues in priorityPool * common, core, eth, les, trie: make priority also generic in prque * les/flowcontrol: add test case for priority accumulator overflow * les/flowcontrol: avoid priority value overflow * common/prque: use int priority in some tests No need to convert to int64 when we can just change the type used by the queue. * common/prque: remove comment about int64 range --------- Co-authored-by: Zsolt Felfoldi <zsfelfoldi@gmail.com> Co-authored-by: Felix Lange <fjl@twurst.com>
This commit is contained in:
co-authored by
Zsolt Felfoldi
Felix Lange
parent
6a148dd5c3
commit
bf1798e04e
+2
-2
@@ -160,7 +160,7 @@ type Sync struct {
|
||||
membatch *syncMemBatch // Memory buffer to avoid frequent database writes
|
||||
nodeReqs map[string]*nodeRequest // Pending requests pertaining to a trie node path
|
||||
codeReqs map[common.Hash]*codeRequest // Pending requests pertaining to a code hash
|
||||
queue *prque.Prque // Priority queue with the pending requests
|
||||
queue *prque.Prque[int64, any] // Priority queue with the pending requests
|
||||
fetches map[int]int // Number of active fetches per trie node depth
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ func NewSync(root common.Hash, database ethdb.KeyValueReader, callback LeafCallb
|
||||
membatch: newSyncMemBatch(),
|
||||
nodeReqs: make(map[string]*nodeRequest),
|
||||
codeReqs: make(map[common.Hash]*codeRequest),
|
||||
queue: prque.New(nil),
|
||||
queue: prque.New[int64, any](nil), // Ugh, can contain both string and hash, whyyy
|
||||
fetches: make(map[int]int),
|
||||
}
|
||||
ts.AddSubTrie(root, nil, common.Hash{}, nil, callback)
|
||||
|
||||
Reference in New Issue
Block a user