Ensure prompt shows inside exclusive command evaluations #3690
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #3677
We need to introduce a
Logger#withPromptUnpaused
API, called internally withinEvaluatorImpl
, to make sure we turn on the prompt by default even when called within aexclusive=true
command which turned it offWe cannot use
SystemStreams.original
, because they do not go through Mills input redirection and so may arrive slightly out of orderdef run
inbuild.mill
has to be aTask.Command(exclusive = true)
for testing stuff usingmill dist.run
to work properlyI moved some of the gnarlier
paused
/pausedNoticed
/stopped
state fromPromptLogger
to an encapsulatedPromperLogger#RunningState
class where we can control the mutation and ensure it is done correctlyMoved the periodic calling of
readTerminalDims
out of thesynchronized
block, only the subsequent storing of the data in memory needs to be synchronized