forked from TrueCloudLab/restic
3304b0fcf0
This is a fix for the following situation (gh-1188): List() grabs a semaphore token upon entry, starts a goroutine, and does not release the token until the routine exits (via a defer). The goroutine iterates over the results from ListCurrentObjects(), sending them one at a time to a channel, where they are ultimately processed by be.Load(). Since be.Load() also needs a token, this will result in deadlock if b2.connections=1. This fix changes List() so that the token is only held during the call to ListCurrentObjects(). |
||
---|---|---|
.. | ||
azure | ||
b2 | ||
gs | ||
local | ||
location | ||
mem | ||
rest | ||
s3 | ||
sftp | ||
swift | ||
test | ||
testdata | ||
backend_error.go | ||
backend_retry.go | ||
backend_retry_test.go | ||
doc.go | ||
http_transport.go | ||
layout.go | ||
layout_default.go | ||
layout_rest.go | ||
layout_s3legacy.go | ||
layout_test.go | ||
paths.go | ||
semaphore.go | ||
utils.go | ||
utils_test.go |