mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-17 18:45:13 +00:00
chore(stdiscosrv): use order-preserving expire
This commit is contained in:
parent
5c2fcbfd19
commit
66fb65b01f
@ -29,7 +29,6 @@ import (
|
|||||||
"github.com/aws/aws-sdk-go/service/s3/s3manager"
|
"github.com/aws/aws-sdk-go/service/s3/s3manager"
|
||||||
"github.com/puzpuzpuz/xsync/v3"
|
"github.com/puzpuzpuz/xsync/v3"
|
||||||
"github.com/syncthing/syncthing/lib/protocol"
|
"github.com/syncthing/syncthing/lib/protocol"
|
||||||
"github.com/syncthing/syncthing/lib/sliceutil"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type clock interface {
|
type clock interface {
|
||||||
@ -405,12 +404,14 @@ loop:
|
|||||||
|
|
||||||
// expire returns the list of addresses after removing expired entries.
|
// expire returns the list of addresses after removing expired entries.
|
||||||
// Expiration happen in place, so the slice given as the parameter is
|
// Expiration happen in place, so the slice given as the parameter is
|
||||||
// destroyed. Internal order is not preserved.
|
// destroyed. Internal order is preserved.
|
||||||
func expire(addrs []DatabaseAddress, now int64) []DatabaseAddress {
|
func expire(addrs []DatabaseAddress, now int64) []DatabaseAddress {
|
||||||
i := 0
|
i := 0
|
||||||
for i < len(addrs) {
|
for i < len(addrs) {
|
||||||
if addrs[i].Expires < now {
|
if addrs[i].Expires < now {
|
||||||
addrs = sliceutil.RemoveAndZero(addrs, i)
|
copy(addrs[i:], addrs[i+1:])
|
||||||
|
addrs[len(addrs)-1] = DatabaseAddress{}
|
||||||
|
addrs = addrs[:len(addrs)-1]
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
i++
|
i++
|
||||||
|
Loading…
Reference in New Issue
Block a user