PopRelated aggretates the bucket

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
This commit is contained in:
Jakub Sztandera 2020-10-23 01:18:13 +02:00
parent 810feee5a1
commit c8fe21c1ef
No known key found for this signature in database
GPG Key ID: 9A9AF56F8B3879BA

View File

@ -211,12 +211,15 @@ func (sbs *syncBucketSet) removeBucket(toremove *syncTargetBucket) {
sbs.buckets = nbuckets
}
func (sbs *syncBucketSet) PopRelated(ts *types.TipSet) []*syncTargetBucket {
var bOut []*syncTargetBucket
func (sbs *syncBucketSet) PopRelated(ts *types.TipSet) *syncTargetBucket {
var bOut *syncTargetBucket
for _, b := range sbs.buckets {
if b.sameChainAs(ts) {
sbs.removeBucket(b)
bOut = append(bOut, b)
if bOut == nil {
bOut = &syncTargetBucket{}
}
bOut.tips = append(bOut.tips, b.tips...)
}
}
return bOut
@ -382,17 +385,14 @@ func (sm *syncManager) scheduleProcessResult(res *syncResult) {
}
delete(sm.activeSyncs, res.ts.Key())
relbuckets := sm.activeSyncTips.PopRelated(res.ts)
if len(relbuckets) != 0 {
relbucket := sm.activeSyncTips.PopRelated(res.ts)
if relbucket != nil {
if res.success {
if sm.nextSyncTarget == nil {
sm.nextSyncTarget = relbuckets[0]
sm.nextSyncTarget = relbucket
sm.workerChan = sm.syncTargets
relbuckets = relbuckets[1:]
}
for _, b := range relbuckets {
for _, t := range b.tips {
} else {
for _, t := range relbucket.tips {
sm.syncQueue.Insert(t)
}
}