From: Sergey Matveev Date: Fri, 9 Jul 2021 12:11:03 +0000 (+0300) Subject: Simpler deletion from queue X-Git-Tag: v7.2.1^2~4 X-Git-Url: http://www.git.cypherpunks.ru/?a=commitdiff_plain;h=d7e5a2439d6d3605ad3f41c802c3bab707b70731;p=nncp.git Simpler deletion from queue --- 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() }