aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java4
2 files changed, 17 insertions, 8 deletions
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 62850557f5..aea47c8810 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
@@ -13,8 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.runtime;
-import static com.google.devtools.build.lib.util.Preconditions.checkState;
-
import com.google.common.collect.ImmutableSet;
import com.google.common.eventbus.Subscribe;
import com.google.common.primitives.Bytes;
@@ -25,6 +23,7 @@ import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.analysis.AnalysisPhaseCompleteEvent;
import com.google.devtools.build.lib.analysis.NoBuildEvent;
import com.google.devtools.build.lib.buildeventstream.AnnounceBuildEventTransportsEvent;
+import com.google.devtools.build.lib.buildeventstream.BuildEventTransport;
import com.google.devtools.build.lib.buildeventstream.BuildEventTransportClosedEvent;
import com.google.devtools.build.lib.buildtool.buildevent.BuildCompleteEvent;
import com.google.devtools.build.lib.buildtool.buildevent.BuildStartingEvent;
@@ -92,7 +91,6 @@ public class ExperimentalEventHandler implements EventHandler {
private int numLinesProgressBar;
private boolean buildComplete;
// Number of open build even protocol transports.
- private int openBepTransports;
private boolean progressBarNeedsRefresh;
private Thread updateThread;
private byte[] stdoutBuffer;
@@ -445,7 +443,7 @@ public class ExperimentalEventHandler implements EventHandler {
// After a build has completed, only stop updating the UI if there is no more BEP
// upload happening.
- if (openBepTransports == 0) {
+ if (stateTracker.pendingTransports() == 0) {
buildComplete = true;
stopUpdateThread();
flushStdOutStdErrBuffers();
@@ -555,17 +553,24 @@ public class ExperimentalEventHandler implements EventHandler {
@Subscribe
public synchronized void buildEventTransportsAnnounced(AnnounceBuildEventTransportsEvent event) {
- openBepTransports += event.transports().size();
stateTracker.buildEventTransportsAnnounced(event);
+ if (debugAllEvents) {
+ String message = "Transports announced:";
+ for (BuildEventTransport transport : event.transports()) {
+ message += " " + transport.name();
+ }
+ this.handle(Event.info(null, message));
+ }
}
@Subscribe
public synchronized void buildEventTransportClosed(BuildEventTransportClosedEvent event) {
- checkState(openBepTransports > 0);
- openBepTransports--;
stateTracker.buildEventTransportClosed(event);
+ if (debugAllEvents) {
+ this.handle(Event.info(null, "Transport " + event.transport().name() + " closed"));
+ }
- if (openBepTransports == 0) {
+ if (stateTracker.pendingTransports() == 0) {
stopUpdateThread();
flushStdOutStdErrBuffers();
ignoreRefreshLimitOnce();
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 51e67b77b3..ea6329d94e 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
@@ -502,6 +502,10 @@ class ExperimentalStateTracker {
bepOpenTransports.remove(event.transport());
}
+ synchronized int pendingTransports() {
+ return bepOpenTransports.size();
+ }
+
/***
* Predicate indicating whether the contents of the progress bar can change, if the
* only thing that happens is that time passes; this is the case, e.g., if the progress