Theme today seems to be fun with exceptions.

Fixed an uncaught exception that could crash the assistant's Watcher thread if just the right race occurred.

Also fixed it to not throw an exception if another process is already transferring a file. What this means is that if you run multiple git annex get processes on the same files, they'll cooperate in each picking their own files to get and download in parallel. (Also works for copy, etc.) Especially useful when downloading from an encrypted remote, since often one process will be decrypting a file while the other is downloading the next file. There is still room for improvement here; a -jN option could better handle ensuring N downloads ran concurrently, and decouple decryption from downloading. But it would need the output layer to be redone to avoid scrambled output. (All the other stuff to make parallel git-annex transfers etc work was already in place for a long time.)


Campaign update: Now funded for nearly 10 months, and aiming for a year. https://campaign.joeyh.name/