mirror of
				https://github.com/restic/restic.git
				synced 2025-10-31 12:41:36 +00:00 
			
		
		
		
	 3304b0fcf0
			
		
	
	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().