restic/internal/backend
George Armhold 3304b0fcf0 prevent deadlock in List() for B2 when b2.connections=1
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().
2017-10-28 18:46:47 -04:00
..
azure Remove Deleter interface 2017-10-14 16:04:29 +02:00
b2 prevent deadlock in List() for B2 when b2.connections=1 2017-10-28 18:46:47 -04:00
gs gs: disable resumable uploads 2017-10-17 21:12:04 -07:00
local Merge pull request #1393 from armhold/lint-errcheck 2017-10-28 09:56:11 +02:00
location Merge pull request #1149 from restic/azure-support 2017-08-09 21:30:35 +02:00
mem Move restic package to internal/restic 2017-07-24 17:43:32 +02:00
rest Remove Deleter interface 2017-10-14 16:04:29 +02:00
s3 Fix failure to detect some legacy s3 repos 2017-10-18 13:45:31 -07:00
sftp sftp: Fix Delete() 2017-10-14 16:08:15 +02:00
swift Remove Deleter interface 2017-10-14 16:04:29 +02:00
test Ensure TestDelete runs last 2017-10-14 16:04:29 +02:00
testdata Moves files 2017-07-23 14:19:13 +02:00
backend_error.go backend: Add partial read failure to error backend 2017-10-17 22:11:38 +02:00
backend_retry.go backend: Correctly retry Save() calls 2017-10-17 21:46:38 +02:00
backend_retry_test.go backend: Correctly retry Save() calls 2017-10-17 21:46:38 +02:00
doc.go Moves files 2017-07-23 14:19:13 +02:00
http_transport.go Add REST backend option to use CA root certificate 2017-10-04 22:14:10 +02:00
layout.go Move restic package to internal/restic 2017-07-24 17:43:32 +02:00
layout_default.go Move restic package to internal/restic 2017-07-24 17:43:32 +02:00
layout_rest.go Move restic package to internal/restic 2017-07-24 17:43:32 +02:00
layout_s3legacy.go Move restic package to internal/restic 2017-07-24 17:43:32 +02:00
layout_test.go Remove all dot-imports 2017-10-02 15:06:39 +02:00
paths.go Moves files 2017-07-23 14:19:13 +02:00
semaphore.go Run goimports 2017-07-23 14:21:03 +02:00
utils.go Move restic package to internal/restic 2017-07-24 17:43:32 +02:00
utils_test.go Remove all dot-imports 2017-10-02 15:06:39 +02:00