aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/PackageProgressReceiver.java
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2017-02-13 10:09:40 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2017-02-13 11:34:44 +0000
commit309a43ba7b4b2f50ea582e79763022e663c77715 (patch)
tree9673ac602f7d95a64ed37e6c634b5f7caea46f64 /src/main/java/com/google/devtools/build/lib/skyframe/PackageProgressReceiver.java
parent381275aae86e14ce68f772dd5f0d2cd6cf0c39c3 (diff)
Fix PackageProgressReceiver to not call contains on a list.
-- PiperOrigin-RevId: 147323591 MOS_MIGRATED_REVID=147323591
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/PackageProgressReceiver.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PackageProgressReceiver.java38
1 files changed, 16 insertions, 22 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageProgressReceiver.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageProgressReceiver.java
index 3a394d0cd9..65214c8bd5 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageProgressReceiver.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageProgressReceiver.java
@@ -13,12 +13,10 @@
// limitations under the License.
package com.google.devtools.build.lib.skyframe;
+import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-
import com.google.devtools.build.lib.util.Pair;
-
-import java.util.ArrayDeque;
-import java.util.Deque;
+import java.util.LinkedHashSet;
/**
* A class that, when beeing told about start and end of a package
@@ -28,23 +26,17 @@ import java.util.Deque;
public class PackageProgressReceiver {
private int packagesCompleted;
- private Deque<PackageIdentifier> pending = new ArrayDeque<>();
+ private LinkedHashSet<PackageIdentifier> pendingSet = new LinkedHashSet<>();
- /**
- * Register that loading a package has started.
- */
- public synchronized void startReadPackage(PackageIdentifier packageId) {
- if (!pending.contains(packageId)) {
- pending.addLast(packageId);
- }
+ /** Register that loading a package has started. */
+ synchronized void startReadPackage(PackageIdentifier packageId) {
+ pendingSet.add(packageId);
}
- /**
- * Register that loding a package has completed.
- */
- public synchronized void doneReadPackage(PackageIdentifier packageId) {
+ /** Register that loding a package has completed. */
+ synchronized void doneReadPackage(PackageIdentifier packageId) {
packagesCompleted++;
- pending.remove(packageId);
+ pendingSet.remove(packageId);
}
/**
@@ -53,7 +45,7 @@ public class PackageProgressReceiver {
*/
public synchronized void reset() {
packagesCompleted = 0;
- pending = new ArrayDeque<>();
+ pendingSet = new LinkedHashSet<>();
}
/**
@@ -64,10 +56,12 @@ public class PackageProgressReceiver {
public synchronized Pair<String, String> progressState() {
String progress = "" + packagesCompleted + " packages loaded";
StringBuffer activity = new StringBuffer();
- if (pending.size() > 0) {
- activity.append("currently loading: ").append(pending.peekFirst().toString());
- if (pending.size() > 1) {
- activity.append(" ... (" + pending.size() + " packages)");
+ if (pendingSet.size() > 0) {
+ activity
+ .append("currently loading: ")
+ .append(Iterables.getFirst(pendingSet, null).toString());
+ if (pendingSet.size() > 1) {
+ activity.append(" ... (" + pendingSet.size() + " packages)");
}
}
return new Pair<String, String>(progress, activity.toString());