git-annex/CmdLine
Joey Hess 37d505dd6b
avoid STM deadlock
When all worker threads are running and enteringStage is called,
it waits for an idle slot. If all off the other threads then call it in
turn, a deadlock occurrs.

This is the same problem I didn't actually fix in
5a9842d7ed.

Fixed by doing two separate STM transactions, the first replaces its
active thread with an idle thread, and the second waits for another idle
thread. That guarantees there will eventually be an idle thread to find.

The changes to WorkerPool were necessary because it can't add an idle
thread containing the Annex state and go on to run an action using that
same state, so I had to remove the Annex state from IdleWorker.
2019-06-19 18:15:25 -04:00
..
GitAnnex avoid list lookup by parseToken 2019-05-14 13:11:29 -04:00
GitAnnexShell update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Action.hs avoid STM deadlock 2019-06-19 18:15:25 -04:00
Batch.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
GitAnnex.hs added renameremote command 2019-04-15 13:49:03 -04:00
GitAnnexShell.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
GitRemoteTorAnnex.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
GlobalSetter.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Option.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Seek.hs make CommandStart return a StartMessage 2019-06-06 17:13:54 -04:00
Usage.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00