forked from TrueCloudLab/restic
Merge pull request #1399 from armhold/deadlock2
prevent deadlock in List() for B2 when b2.connections=1
This commit is contained in:
commit
f854a41ba9
1 changed files with 2 additions and 3 deletions
|
@ -307,18 +307,17 @@ func (be *b2Backend) List(ctx context.Context, t restic.FileType) <-chan string
|
|||
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
|
||||
be.sem.GetToken()
|
||||
|
||||
go func() {
|
||||
defer close(ch)
|
||||
defer cancel()
|
||||
defer be.sem.ReleaseToken()
|
||||
|
||||
prefix := be.Dirname(restic.Handle{Type: t})
|
||||
cur := &b2.Cursor{Prefix: prefix}
|
||||
|
||||
for {
|
||||
be.sem.GetToken()
|
||||
objs, c, err := be.bucket.ListCurrentObjects(ctx, be.listMaxItems, cur)
|
||||
be.sem.ReleaseToken()
|
||||
if err != nil && err != io.EOF {
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue