@node Новости
@section Новости
+@node Релиз 6.6.0
+@subsection Релиз 6.6.0
+@itemize
+
+@item
+@command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
+ожидают завершения всех процессов фоновой проверки контрольных сумм,
+после того как соединение закрыто.
+
+@end itemize
+
@node Релиз 6.5.0
@subsection Релиз 6.5.0
@itemize
@item
Убирать показ прогресса передачи пакетов когда вызов уже завершён в
-@command{nncp-daemon}, @command{nncp-call} and @command{nncp-caller}.
+@command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
@end itemize
See also this page @ref{Новости, on russian}.
+@node Release 6.6.0
+@section Release 6.6.0
+@itemize
+
+@item
+@command{nncp-daemon}, @command{nncp-call} and @command{nncp-caller}
+commands wait for all background checksummers completion after
+connection is finished.
+
+@end itemize
+
@node Release 6.5.0
@section Release 6.5.0
@itemize
const Base32Encoded32Len = 52
var (
- Version string = "6.5.0"
+ Version string = "6.6.0"
Base32Codec *base32.Encoding = base32.StdEncoding.WithPadding(base32.NoPadding)
)
DefaultDeadline = 10 * time.Second
PingTimeout = time.Minute
- spCheckers = make(map[NodeId]*SPCheckerQueues)
+ spCheckers = make(map[NodeId]*SPCheckerQueues)
+ SPCheckersWg sync.WaitGroup
)
type FdAndFullSize struct {
{"Node", nodeId},
{"Pkt", pktName},
}
+ SPCheckersWg.Add(1)
ctx.LogD("sp-checker", les, func(les LEs) string {
return fmt.Sprintf("Checksumming %s/rx/%s", ctx.NodeName(nodeId), pktName)
})
pktName, humanize.IBytes(uint64(size)),
)
})
+ SPCheckersWg.Done()
go func(hsh *[32]byte) { checked <- hsh }(hshValue)
}
}
state.wg.Wait()
close(state.payloads)
close(state.pings)
- state.dirUnlock()
state.Duration = time.Now().Sub(state.started)
+ SPCheckersWg.Wait()
+ state.dirUnlock()
state.RxSpeed = state.RxBytes
state.TxSpeed = state.TxBytes
rxDuration := int64(state.RxLastSeen.Sub(state.started).Seconds())