A git queue is used when doing things that update .git/index. If two git-annex processes are both building up a git queue and happen to flush at the same time, one will fail due to git's locking of the index file.

This doesn't affect multiple threads with --jobs; while threads have individual git queues, inter-thread locking allows only one to flush at a time. That locking is handled in Annex.Queue.flush' using a semaphore.

Seems that it would be better to use a lock file. --Joey

done --Joey