Sped up query commands that read the git-annex branch by around 5%

The only price paid is one additional MVar read per write to the journal.
Presumably writing a journal file dominiates over a MVar read time by
several orders of magnitude.

--batch does not get the speedup because then it needs to notice when
another process has made a change. Also made the assistant and other damon
modes bypass the optimisation, which would not help them anyway.
This commit is contained in:
Joey Hess 2020-04-09 13:54:43 -04:00
parent aba905152a
commit aeca7c2207
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
14 changed files with 101 additions and 25 deletions

View file

@ -8,9 +8,17 @@
module Types.BranchState where
data BranchState = BranchState
{ branchUpdated :: Bool -- has the branch been updated this run?
, indexChecked :: Bool -- has the index file been checked to exist?
{ branchUpdated :: Bool
-- ^ has the branch been updated this run?
, indexChecked :: Bool
-- ^ has the index file been checked to exist?
, journalIgnorable :: Bool
-- ^ can reading the journal be skipped, while still getting
-- sufficiently up-to-date information from the branch?
, journalNeverIgnorable :: Bool
-- ^ should the journal always be read even if it would normally
-- be safe to skip it?
}
startBranchState :: BranchState
startBranchState = BranchState False False
startBranchState = BranchState False False False False