diff options
author | Klaus Aehlig <aehlig@google.com> | 2016-04-04 12:15:23 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2016-04-04 14:02:06 +0000 |
commit | a63d96158d864ff6a3cd789cef8932566fa43613 (patch) | |
tree | 11bad35b1ac47acbcc865b30bd924916ef3847b2 /src/main/java/com | |
parent | 61e3fc9ac7aa7a0a907af291e97ef12f43ca9a3e (diff) |
Pass through the clock to the ExperimentalStateTracker
In this way, the ExperimentalStateTracker has access to all the information needed
to provide information about the run-time of currently running actions.
--
Change-Id: I0f4e48f39e9ebe63555e4bb1d70df2a6dbb65430
Reviewed-on: https://bazel-review.googlesource.com/#/c/3204
MOS_MIGRATED_REVID=118929758
Diffstat (limited to 'src/main/java/com')
3 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java index cddb96c1b8..d3d00b457a 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java @@ -635,7 +635,7 @@ public class BlazeCommandDispatcher { EventHandler eventHandler; if (eventOptions.experimentalUi) { // The experimental event handler is not to be rate limited. - return new ExperimentalEventHandler(outErr, eventOptions); + return new ExperimentalEventHandler(outErr, eventOptions, runtime.getClock()); } else if ((eventOptions.useColor() || eventOptions.useCursorControl())) { eventHandler = new FancyTerminalEventHandler(outErr, eventOptions); } else { diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java index a67dc2abfd..0073c245ce 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java @@ -24,6 +24,7 @@ import com.google.devtools.build.lib.buildtool.buildevent.ExecutionProgressRecei import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventKind; import com.google.devtools.build.lib.pkgcache.LoadingPhaseCompleteEvent; +import com.google.devtools.build.lib.util.Clock; import com.google.devtools.build.lib.util.io.AnsiTerminal; import com.google.devtools.build.lib.util.io.LineCountingAnsiTerminalWriter; import com.google.devtools.build.lib.util.io.LineWrappingAnsiTerminalWriter; @@ -49,12 +50,13 @@ public class ExperimentalEventHandler extends BlazeCommandEventHandler { public final int terminalWidth; - public ExperimentalEventHandler(OutErr outErr, BlazeCommandEventHandler.Options options) { + public ExperimentalEventHandler( + OutErr outErr, BlazeCommandEventHandler.Options options, Clock clock) { super(outErr, options); this.terminal = new AnsiTerminal(outErr.getErrorStream()); this.terminalWidth = (options.terminalColumns > 0 ? options.terminalColumns : 80); this.debugAllEvents = options.experimentalUiDebugAllEvents; - this.stateTracker = new ExperimentalStateTracker(); + this.stateTracker = new ExperimentalStateTracker(clock); this.numLinesProgressBar = 0; } diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java index 02086ba4a2..7c0acb77c3 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java @@ -22,6 +22,7 @@ import com.google.devtools.build.lib.buildtool.buildevent.BuildCompleteEvent; import com.google.devtools.build.lib.buildtool.buildevent.BuildStartingEvent; import com.google.devtools.build.lib.buildtool.buildevent.ExecutionProgressReceiverAvailableEvent; import com.google.devtools.build.lib.pkgcache.LoadingPhaseCompleteEvent; +import com.google.devtools.build.lib.util.Clock; import com.google.devtools.build.lib.util.io.AnsiTerminalWriter; import java.io.IOException; @@ -40,6 +41,8 @@ class ExperimentalStateTracker { private String status; private String additionalMessage; + private final Clock clock; + // currently running actions, using the path of the primary // output as unique identifier. private final Deque<String> runningActions; @@ -50,10 +53,11 @@ class ExperimentalStateTracker { private ExecutionProgressReceiver executionProgressReceiver; - ExperimentalStateTracker() { + ExperimentalStateTracker(Clock clock) { this.runningActions = new ArrayDeque<>(); this.actions = new TreeMap<>(); this.ok = true; + this.clock = clock; } void buildStarted(BuildStartingEvent event) { |