@@ -26,10 +26,10 @@ import (
2626 "time"
2727
2828 "github.com/XinFinOrg/XDPoSChain/common"
29+ "github.com/XinFinOrg/XDPoSChain/common/prque"
2930 "github.com/XinFinOrg/XDPoSChain/core/types"
3031 "github.com/XinFinOrg/XDPoSChain/log"
3132 "github.com/XinFinOrg/XDPoSChain/metrics"
32- "gopkg.in/karalabe/cookiejar.v2/collections/prque"
3333)
3434
3535var (
@@ -105,11 +105,11 @@ func newQueue() *queue {
105105 headerPendPool : make (map [string ]* fetchRequest ),
106106 headerContCh : make (chan bool ),
107107 blockTaskPool : make (map [common.Hash ]* types.Header ),
108- blockTaskQueue : prque .New (),
108+ blockTaskQueue : prque .New (nil ),
109109 blockPendPool : make (map [string ]* fetchRequest ),
110110 blockDonePool : make (map [common.Hash ]struct {}),
111111 receiptTaskPool : make (map [common.Hash ]* types.Header ),
112- receiptTaskQueue : prque .New (),
112+ receiptTaskQueue : prque .New (nil ),
113113 receiptPendPool : make (map [string ]* fetchRequest ),
114114 receiptDonePool : make (map [common.Hash ]struct {}),
115115 resultCache : make ([]* fetchResult , blockCacheItems ),
@@ -278,7 +278,7 @@ func (q *queue) ScheduleSkeleton(from uint64, skeleton []*types.Header) {
278278 }
279279 // Shedule all the header retrieval tasks for the skeleton assembly
280280 q .headerTaskPool = make (map [uint64 ]* types.Header )
281- q .headerTaskQueue = prque .New ()
281+ q .headerTaskQueue = prque .New (nil )
282282 q .headerPeerMiss = make (map [string ]map [uint64 ]struct {}) // Reset availability to correct invalid chains
283283 q .headerResults = make ([]* types.Header , len (skeleton )* MaxHeaderFetch )
284284 q .headerProced = 0
@@ -289,7 +289,7 @@ func (q *queue) ScheduleSkeleton(from uint64, skeleton []*types.Header) {
289289 index := from + uint64 (i * MaxHeaderFetch )
290290
291291 q .headerTaskPool [index ] = header
292- q .headerTaskQueue .Push (index , - float32 (index ))
292+ q .headerTaskQueue .Push (index , - int64 (index ))
293293 }
294294}
295295
@@ -335,11 +335,11 @@ func (q *queue) Schedule(headers []*types.Header, from uint64) []*types.Header {
335335 }
336336 // Queue the header for content retrieval
337337 q .blockTaskPool [hash ] = header
338- q .blockTaskQueue .Push (header , - float32 (header .Number .Uint64 ()))
338+ q .blockTaskQueue .Push (header , - int64 (header .Number .Uint64 ()))
339339
340340 if q .mode == FastSync {
341341 q .receiptTaskPool [hash ] = header
342- q .receiptTaskQueue .Push (header , - float32 (header .Number .Uint64 ()))
342+ q .receiptTaskQueue .Push (header , - int64 (header .Number .Uint64 ()))
343343 }
344344 inserts = append (inserts , header )
345345 q .headerHead = hash
@@ -437,7 +437,7 @@ func (q *queue) ReserveHeaders(p *peerConnection, count int) *fetchRequest {
437437 }
438438 // Merge all the skipped batches back
439439 for _ , from := range skip {
440- q .headerTaskQueue .Push (from , - float32 (from ))
440+ q .headerTaskQueue .Push (from , - int64 (from ))
441441 }
442442 // Assemble and return the block download request
443443 if send == 0 {
@@ -544,7 +544,7 @@ func (q *queue) reserveHeaders(p *peerConnection, count int, taskPool map[common
544544 }
545545 // Merge all the skipped headers back
546546 for _ , header := range skip {
547- taskQueue .Push (header , - float32 (header .Number .Uint64 ()))
547+ taskQueue .Push (header , - int64 (header .Number .Uint64 ()))
548548 }
549549 if progress {
550550 // Wake WaitResults, resultCache was modified
@@ -587,10 +587,10 @@ func (q *queue) cancel(request *fetchRequest, taskQueue *prque.Prque, pendPool m
587587 defer q .lock .Unlock ()
588588
589589 if request .From > 0 {
590- taskQueue .Push (request .From , - float32 (request .From ))
590+ taskQueue .Push (request .From , - int64 (request .From ))
591591 }
592592 for _ , header := range request .Headers {
593- taskQueue .Push (header , - float32 (header .Number .Uint64 ()))
593+ taskQueue .Push (header , - int64 (header .Number .Uint64 ()))
594594 }
595595 delete (pendPool , request .Peer .id )
596596}
@@ -604,13 +604,13 @@ func (q *queue) Revoke(peerId string) {
604604
605605 if request , ok := q .blockPendPool [peerId ]; ok {
606606 for _ , header := range request .Headers {
607- q .blockTaskQueue .Push (header , - float32 (header .Number .Uint64 ()))
607+ q .blockTaskQueue .Push (header , - int64 (header .Number .Uint64 ()))
608608 }
609609 delete (q .blockPendPool , peerId )
610610 }
611611 if request , ok := q .receiptPendPool [peerId ]; ok {
612612 for _ , header := range request .Headers {
613- q .receiptTaskQueue .Push (header , - float32 (header .Number .Uint64 ()))
613+ q .receiptTaskQueue .Push (header , - int64 (header .Number .Uint64 ()))
614614 }
615615 delete (q .receiptPendPool , peerId )
616616 }
@@ -659,10 +659,10 @@ func (q *queue) expire(timeout time.Duration, pendPool map[string]*fetchRequest,
659659
660660 // Return any non satisfied requests to the pool
661661 if request .From > 0 {
662- taskQueue .Push (request .From , - float32 (request .From ))
662+ taskQueue .Push (request .From , - int64 (request .From ))
663663 }
664664 for _ , header := range request .Headers {
665- taskQueue .Push (header , - float32 (header .Number .Uint64 ()))
665+ taskQueue .Push (header , - int64 (header .Number .Uint64 ()))
666666 }
667667 // Add the peer to the expiry report along the the number of failed requests
668668 expiries [id ] = len (request .Headers )
@@ -733,7 +733,7 @@ func (q *queue) DeliverHeaders(id string, headers []*types.Header, headerProcCh
733733 }
734734 miss [request .From ] = struct {}{}
735735
736- q .headerTaskQueue .Push (request .From , - float32 (request .From ))
736+ q .headerTaskQueue .Push (request .From , - int64 (request .From ))
737737 return 0 , errors .New ("delivery not accepted" )
738738 }
739739 // Clean up a successful fetch and try to deliver any sub-results
@@ -856,7 +856,7 @@ func (q *queue) deliver(id string, taskPool map[common.Hash]*types.Header, taskQ
856856 // Return all failed or missing fetches to the queue
857857 for _ , header := range request .Headers {
858858 if header != nil {
859- taskQueue .Push (header , - float32 (header .Number .Uint64 ()))
859+ taskQueue .Push (header , - int64 (header .Number .Uint64 ()))
860860 }
861861 }
862862 // Wake up WaitResults
0 commit comments