mirror of
https://github.com/restic/restic.git
synced 2025-12-25 09:09:36 -05:00
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(). |
||
|---|---|---|
| .. | ||
| archiver | ||
| backend | ||
| cache | ||
| checker | ||
| crypto | ||
| debug | ||
| errors | ||
| filter | ||
| fs | ||
| fuse | ||
| hashing | ||
| index | ||
| limiter | ||
| list | ||
| migrations | ||
| mock | ||
| options | ||
| pack | ||
| pipe | ||
| repository | ||
| restic | ||
| test | ||
| walk | ||
| worker | ||