From d7e5a2439d6d3605ad3f41c802c3bab707b70731 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 9 Jul 2021 15:11:03 +0300 Subject: [PATCH] Simpler deletion from queue --- src/sp.go | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/sp.go b/src/sp.go index a8b5f0b..0e33c06 100644 --- a/src/sp.go +++ b/src/sp.go @@ -947,27 +947,25 @@ func (state *SPState) StartWorkers( Progress("Tx", lesp) } state.Lock() - if len(state.queueTheir) > 0 && - *state.queueTheir[0].freq.Hash == *freq.Hash { + for i, q := range state.queueTheir { + if *q.freq.Hash != *freq.Hash { + continue + } if ourSize == uint64(fullSize) { state.Ctx.LogD("sp-file-finished", lesp, func(les LEs) string { return logMsg(les) + ": finished" }) - if len(state.queueTheir) > 1 { - state.queueTheir = state.queueTheir[1:] - } else { - state.queueTheir = state.queueTheir[:0] - } + state.queueTheir = append( + state.queueTheir[:i], + state.queueTheir[i+1:]..., + ) if state.Ctx.ShowPrgrs { delete(state.progressBars, pktName) } } else { - state.queueTheir[0].freq.Offset = ourSize + q.freq.Offset = ourSize } - } else { - state.Ctx.LogD("sp-file-disappeared", lesp, func(les LEs) string { - return logMsg(les) + ": queue disappeared" - }) + break } state.Unlock() } -- 2.44.0