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.java24
1 files changed, 21 insertions, 3 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 863cf0fea6..1bf0e008b7 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
@@ -530,7 +530,26 @@ public class ExperimentalEventHandler implements EventHandler {
buildRunning = false;
}
stopUpdateThread();
- flushStdOutStdErrBuffers();
+ synchronized (this) {
+ try {
+ // If a progress bar is currently present, clean it and redraw it.
+ boolean progressBarPresent = numLinesProgressBar > 0;
+ if (progressBarPresent) {
+ clearProgressBar();
+ }
+ terminal.flush();
+ boolean incompleteLine = flushStdOutStdErrBuffers();
+ if (incompleteLine) {
+ crlf();
+ }
+ if (progressBarPresent) {
+ addProgressBar();
+ }
+ terminal.flush();
+ } catch (IOException e) {
+ logger.warning("IO Error writing to output stream: " + e);
+ }
+ }
}
@Subscribe
@@ -554,8 +573,7 @@ public class ExperimentalEventHandler implements EventHandler {
synchronized (this) {
buildRunning = true;
}
- stopUpdateThread();
- flushStdOutStdErrBuffers();
+ completeBuild();
try {
terminal.resetTerminal();
terminal.flush();