aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2016-04-04 12:15:23 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-04-04 14:02:06 +0000
commita63d96158d864ff6a3cd789cef8932566fa43613 (patch)
tree11bad35b1ac47acbcc865b30bd924916ef3847b2 /src/main/java/com
parent61e3fc9ac7aa7a0a907af291e97ef12f43ca9a3e (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java6
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) {