mirror of
https://github.com/octoleo/syncthing.git
synced 2025-01-30 18:38:33 +00:00
fix(model): shut down index sender faster (#9704)
This commit is contained in:
parent
1704827d04
commit
2238a288d9
@ -233,6 +233,12 @@ func (s *indexHandler) sendIndexTo(ctx context.Context, fset *db.FileSet) error
|
||||
batch := db.NewFileInfoBatch(nil)
|
||||
var batchError error
|
||||
batch.SetFlushFunc(func(fs []protocol.FileInfo) error {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return ctx.Err()
|
||||
default:
|
||||
}
|
||||
|
||||
if len(fs) == 0 {
|
||||
// can't happen, flush is not called with an empty batch
|
||||
panic("bug: flush called with empty batch (race condition?)")
|
||||
|
@ -354,6 +354,8 @@ func (c *rawConnection) Index(ctx context.Context, idx *Index) error {
|
||||
select {
|
||||
case <-c.closed:
|
||||
return ErrClosed
|
||||
case <-ctx.Done():
|
||||
return ctx.Err()
|
||||
default:
|
||||
}
|
||||
c.idxMut.Lock()
|
||||
@ -367,6 +369,8 @@ func (c *rawConnection) IndexUpdate(ctx context.Context, idxUp *IndexUpdate) err
|
||||
select {
|
||||
case <-c.closed:
|
||||
return ErrClosed
|
||||
case <-ctx.Done():
|
||||
return ctx.Err()
|
||||
default:
|
||||
}
|
||||
c.idxMut.Lock()
|
||||
@ -377,6 +381,14 @@ func (c *rawConnection) IndexUpdate(ctx context.Context, idxUp *IndexUpdate) err
|
||||
|
||||
// Request returns the bytes for the specified block after fetching them from the connected peer.
|
||||
func (c *rawConnection) Request(ctx context.Context, req *Request) ([]byte, error) {
|
||||
select {
|
||||
case <-c.closed:
|
||||
return nil, ErrClosed
|
||||
case <-ctx.Done():
|
||||
return nil, ctx.Err()
|
||||
default:
|
||||
}
|
||||
|
||||
rc := make(chan asyncResult, 1)
|
||||
|
||||
c.awaitingMut.Lock()
|
||||
|
Loading…
x
Reference in New Issue
Block a user