cat-file resource pool
Avoid running a large number of git cat-file child processes when run with a large -J value. This implementation takes care to avoid adding any overhead to git-annex when run without -J. When run with -J, there is a small bit of added overhead, to manipulate the resource pool. That optimisation added a fair bit of complexity.
This commit is contained in:
parent
87b7b0f202
commit
cee6b344b4
14 changed files with 243 additions and 47 deletions
|
@ -36,6 +36,7 @@ import CmdLine.GlobalSetter
|
|||
import qualified Backend
|
||||
import qualified Types.Backend as Backend
|
||||
import Utility.HumanTime
|
||||
import Annex.Concurrent
|
||||
|
||||
-- Global options that are accepted by all git-annex sub-commands,
|
||||
-- although not always used.
|
||||
|
@ -395,7 +396,7 @@ jsonProgressOption =
|
|||
-- action in `allowConcurrentOutput`.
|
||||
jobsOption :: [GlobalOption]
|
||||
jobsOption =
|
||||
[ globalSetter set $
|
||||
[ globalSetter setConcurrency $
|
||||
option (maybeReader parseConcurrency)
|
||||
( long "jobs" <> short 'J'
|
||||
<> metavar (paramNumber `paramOr` "cpus")
|
||||
|
@ -403,8 +404,6 @@ jobsOption =
|
|||
<> hidden
|
||||
)
|
||||
]
|
||||
where
|
||||
set v = Annex.changeState $ \s -> s { Annex.concurrency = v }
|
||||
|
||||
timeLimitOption :: [GlobalOption]
|
||||
timeLimitOption =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue