arrange for regional output manager to run when -J is enabled
Commands that want to use it have to run their seek action inside allowConcurrentOutput. Which seems reasonable; perhaps some future command will want to support the -J flag but not use regions. The region state moved from Annex to MessageState. This makes sense organizationally, and note that some uses of onLocal use a different Annex state, but pass the MessageState into it, which is what is needed.
This commit is contained in:
parent
a4dd8503b8
commit
c0c595345c
12 changed files with 58 additions and 50 deletions
|
@ -56,7 +56,8 @@ commandAction a = withOutputType go
|
|||
else do
|
||||
l <- liftIO $ drainTo (n-1) ws
|
||||
findFreeSlot l
|
||||
w <- liftIO $ async $ snd <$> Annex.run st run
|
||||
w <- liftIO $ async
|
||||
$ snd <$> Annex.run st (inOwnConsoleRegion run)
|
||||
Annex.changeState $ \s -> s { Annex.workers = Right w:ws' }
|
||||
go _ = run
|
||||
run = void $ includeCommandAction a
|
||||
|
|
|
@ -282,13 +282,17 @@ jsonOption = globalFlag (Annex.setOutput JSONOutput)
|
|||
<> hidden
|
||||
)
|
||||
|
||||
-- Note that a command that adds this option should wrap its seek
|
||||
-- action in `allowConcurrentOutput`.
|
||||
jobsOption :: GlobalOption
|
||||
jobsOption = globalSetter (Annex.setOutput . ConcurrentOutput) $
|
||||
jobsOption = globalSetter set $
|
||||
option auto
|
||||
( long "jobs" <> short 'J' <> metavar paramNumber
|
||||
<> help "enable concurrent jobs"
|
||||
<> hidden
|
||||
)
|
||||
where
|
||||
set n = Annex.changeState $ \s -> s { Annex.concurrentjobs = Just n }
|
||||
|
||||
timeLimitOption :: GlobalOption
|
||||
timeLimitOption = globalSetter Limit.addTimeLimit $ strOption
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue