does these operation need to be protected by a mutex?
```ruby
x << sync_file_in_cookbook(cookbook, file_manifest)
@mutex.synchronize do
 cache_filenames << x
 download_queue.delete(file_manifest)
end
```