Change in bazel[master]: experimental UI: merge simultaneous progress bar updates

2 views
Skip to first unread message

Klaus Aehlig (Gerrit)

unread,
Mar 2, 2016, 5:24:46 AM3/2/16
to bazel-de...@googlegroups.com
Klaus Aehlig has uploaded a new change for review.

https://bazel-review.googlesource.com/3047

Change subject: experimental UI: merge simultaneous progress bar updates
......................................................................

experimental UI: merge simultaneous progress bar updates

Events may reach the UI over the event bus simultaneously or
with very small time difference. Updating the UI on the terminal,
however is an expensive operation. So update the UI only once
for simultaneous events.

Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
---
M
src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
1 file changed, 14 insertions(+), 4 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 a0d8b33..8d44489 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
@@ -44,6 +44,7 @@
private final ExperimentalStateTracker stateTracker;
private int numLinesProgressBar;
private boolean buildComplete;
+ private boolean progressBarNeedsRefresh;

public final int terminalWidth;

@@ -55,6 +56,7 @@
this.stateTracker = new ExperimentalStateTracker();
this.numLinesProgressBar = 0;
this.buildComplete = false;
+ this.progressBarNeedsRefresh = false;
}

@Override
@@ -171,11 +173,19 @@
refresh();
}

- private synchronized void refresh() {
+ private void refresh() {
+ progressBarNeedsRefresh = true;
+ doRefresh();
+ }
+
+ private synchronized void doRefresh() {
try {
- clearProgressBar();
- addProgressBar();
- terminal.flush();
+ if (progressBarNeedsRefresh) {
+ progressBarNeedsRefresh = false;
+ clearProgressBar();
+ addProgressBar();
+ terminal.flush();
+ }
} catch (IOException e) {
LOG.warning("IO Error writing to output stream: " + e);
}

--
To view, visit https://bazel-review.googlesource.com/3047
To unsubscribe, visit https://bazel-review.googlesource.com/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
Gerrit-PatchSet: 1
Gerrit-Project: bazel
Gerrit-Branch: master
Gerrit-Owner: Klaus Aehlig <aeh...@google.com>

Damien Martin-guillerez (Gerrit)

unread,
Mar 2, 2016, 6:34:19 AM3/2/16
to Klaus Aehlig
Damien Martin-guillerez has posted comments on this change.

Change subject: experimental UI: merge simultaneous progress bar updates
......................................................................


Patch Set 1: Code-Review+2
Gerrit-MessageType: comment
Gerrit-Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
Gerrit-PatchSet: 1
Gerrit-Project: bazel
Gerrit-Branch: master
Gerrit-Owner: Klaus Aehlig <aeh...@google.com>
Gerrit-Reviewer: Damien Martin-guillerez <dmar...@google.com>
Gerrit-HasComments: No

Ulf Adams (Gerrit)

unread,
Mar 3, 2016, 7:02:05 AM3/3/16
to Klaus Aehlig, Damien Martin-guillerez
Ulf Adams has posted comments on this change.

Change subject: experimental UI: merge simultaneous progress bar updates
......................................................................


Patch Set 1: Code-Review+1

(1 comment)

https://bazel-review.googlesource.com/#/c/3047/1/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
File
src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java:

PS1, Line 59: false
No need to set the field to the default value for its type.
Gerrit-MessageType: comment
Gerrit-Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
Gerrit-PatchSet: 1
Gerrit-Project: bazel
Gerrit-Branch: master
Gerrit-Owner: Klaus Aehlig <aeh...@google.com>
Gerrit-Reviewer: Damien Martin-guillerez <dmar...@google.com>
Gerrit-Reviewer: Ulf Adams <ulf...@google.com>
Gerrit-HasComments: Yes

Klaus Aehlig (Gerrit)

unread,
Mar 3, 2016, 8:55:01 AM3/3/16
to Damien Martin-guillerez, Ulf Adams
Hello Damien Martin-guillerez, Ulf Adams,

I'd like you to reexamine a change. Please visit

https://bazel-review.googlesource.com/3047

to look at the new patch set (#2).

Change subject: experimental UI: merge simultaneous progress bar updates
......................................................................

experimental UI: merge simultaneous progress bar updates

Events may reach the UI over the event bus simultaneously or
with very small time difference. Updating the UI on the terminal,
however is an expensive operation. So update the UI only once
for simultaneous events.

Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
---
M
src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
1 file changed, 13 insertions(+), 4 deletions(-)
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
Gerrit-PatchSet: 2
Gerrit-Project: bazel
Gerrit-Branch: master
Gerrit-Owner: Klaus Aehlig <aeh...@google.com>

Klaus Aehlig (Gerrit)

unread,
Mar 3, 2016, 8:55:53 AM3/3/16
to Damien Martin-guillerez, Ulf Adams
Klaus Aehlig has posted comments on this change.

Change subject: experimental UI: merge simultaneous progress bar updates
......................................................................


Patch Set 2:

(1 comment)

https://bazel-review.googlesource.com/#/c/3047/1/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
File
src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java:

PS1, Line 59:
> No need to set the field to the default value for its type.
Done
Gerrit-MessageType: comment
Gerrit-Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
Gerrit-PatchSet: 2
Gerrit-Project: bazel
Gerrit-Branch: master
Gerrit-Owner: Klaus Aehlig <aeh...@google.com>
Gerrit-Reviewer: Damien Martin-guillerez <dmar...@google.com>
Gerrit-Reviewer: Klaus Aehlig <aeh...@google.com>

Damien Martin-guillerez (Gerrit)

unread,
Mar 4, 2016, 11:25:24 AM3/4/16
to Klaus Aehlig, Ulf Adams
Hello Ulf Adams,

I'd like you to reexamine a change. Please visit

https://bazel-review.googlesource.com/3047

to look at the new patch set (#4).

Change subject: experimental UI: merge simultaneous progress bar updates
......................................................................

experimental UI: merge simultaneous progress bar updates

Events may reach the UI over the event bus simultaneously or
with very small time difference. Updating the UI on the terminal,
however is an expensive operation. So update the UI only once
for simultaneous events.

--
Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
Reviewed-on: https://bazel-review.googlesource.com/#/c/3047
MOS_MIGRATED_REVID=116352143
---
M
src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
1 file changed, 13 insertions(+), 4 deletions(-)
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
Gerrit-PatchSet: 4
Gerrit-Project: bazel
Gerrit-Branch: master
Gerrit-Owner: Klaus Aehlig <aeh...@google.com>

Damien Martin-guillerez (Gerrit)

unread,
Mar 4, 2016, 11:25:24 AM3/4/16
to Klaus Aehlig, Ulf Adams
Damien Martin-guillerez has submitted this change and it was merged.

Change subject: experimental UI: merge simultaneous progress bar updates
......................................................................


experimental UI: merge simultaneous progress bar updates

Events may reach the UI over the event bus simultaneously or
with very small time difference. Updating the UI on the terminal,
however is an expensive operation. So update the UI only once
for simultaneous events.

--
Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
Reviewed-on: https://bazel-review.googlesource.com/#/c/3047
MOS_MIGRATED_REVID=116352143
---
M
src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
1 file changed, 13 insertions(+), 4 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 5b38f0f..6c5dd0e 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
@@ -44,6 +44,7 @@
private final ExperimentalStateTracker stateTracker;
private int numLinesProgressBar;
private boolean buildComplete;
+ private boolean progressBarNeedsRefresh;

public final int terminalWidth;

@@ -170,11 +171,19 @@
refresh();
}

- private synchronized void refresh() {
+ private void refresh() {
+ progressBarNeedsRefresh = true;
+ doRefresh();
+ }
+
+ private synchronized void doRefresh() {
try {
- clearProgressBar();
- addProgressBar();
- terminal.flush();
+ if (progressBarNeedsRefresh) {
+ progressBarNeedsRefresh = false;
+ clearProgressBar();
+ addProgressBar();
+ terminal.flush();
+ }
} catch (IOException e) {
LOG.warning("IO Error writing to output stream: " + e);
}

--
To view, visit https://bazel-review.googlesource.com/3047
To unsubscribe, visit https://bazel-review.googlesource.com/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3e6881f18b37626f6be3ad7b97043b42773812f3
Gerrit-PatchSet: 4
Gerrit-Project: bazel
Gerrit-Branch: master
Gerrit-Owner: Klaus Aehlig <aeh...@google.com>
Reply all
Reply to author
Forward
0 new messages