]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/sp.go
Really close fd at upload completion
[nncp.git] / src / sp.go
index 5937d35e30084d5480adedf273afd2e209aa1ddf..58b9bb2f202ef21261b3775b159714fe5f973d48 100644 (file)
--- a/src/sp.go
+++ b/src/sp.go
@@ -952,22 +952,25 @@ func (state *SPState) StartWorkers(
                                        state.progressBars[pktName] = struct{}{}
                                        Progress("Tx", lesp)
                                }
+                               if ourSize == uint64(fullSize) {
+                                       state.closeFd(pth)
+                                       state.Ctx.LogD("sp-file-finished", lesp, func(les LEs) string {
+                                               return logMsg(les) + ": finished"
+                                       })
+                                       if state.Ctx.ShowPrgrs {
+                                               delete(state.progressBars, pktName)
+                                       }
+                               }
                                state.Lock()
                                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"
-                                               })
                                                state.queueTheir = append(
                                                        state.queueTheir[:i],
                                                        state.queueTheir[i+1:]...,
                                                )
-                                               if state.Ctx.ShowPrgrs {
-                                                       delete(state.progressBars, pktName)
-                                               }
                                        } else {
                                                q.freq.Offset = ourSize
                                        }