aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/pkgcache
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2018-02-12 01:22:31 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-12 01:24:13 -0800
commitd9aa4039f4cf1803f2b03d03479f4bc66c62ba61 (patch)
tree36525b2552283c9f430c417003159f8065b26b8f /src/main/java/com/google/devtools/build/lib/pkgcache
parente45c0555cfb15ce403ff2f447edb74495a633ec1 (diff)
BEP: assert event orderings explicitly
...even where they should be clear from the evaluation order. Since reporting sometimes happens in different threads, there might be races on the event bus. Explicit order constraints allow the BuildEventStreamer to reorder those events correctly in the case of a lost race. Change-Id: Ib5211341c2016527e9268e8fdbd1677d4255b23c PiperOrigin-RevId: 185345738
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/pkgcache')
-rw-r--r--src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java
index 64d4eb1f1e..b2eb9433e1 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java
@@ -17,10 +17,10 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.buildeventstream.BuildEvent;
import com.google.devtools.build.lib.buildeventstream.BuildEventConverters;
import com.google.devtools.build.lib.buildeventstream.BuildEventId;
import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos;
+import com.google.devtools.build.lib.buildeventstream.BuildEventWithOrderConstraint;
import com.google.devtools.build.lib.buildeventstream.GenericBuildEvent;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Target;
@@ -29,7 +29,7 @@ import java.util.Collection;
import java.util.List;
/** This event is fired just after target pattern evaluation is completed. */
-public class TargetParsingCompleteEvent implements BuildEvent {
+public class TargetParsingCompleteEvent implements BuildEventWithOrderConstraint {
private final ImmutableList<String> originalTargetPattern;
private final ImmutableSet<Target> targets;
@@ -96,6 +96,11 @@ public class TargetParsingCompleteEvent implements BuildEvent {
}
@Override
+ public Collection<BuildEventId> postedAfter() {
+ return ImmutableList.<BuildEventId>of(BuildEventId.buildStartedId());
+ }
+
+ @Override
public Collection<BuildEventId> getChildrenEvents() {
ImmutableList.Builder<BuildEventId> childrenBuilder = ImmutableList.builder();
for (Target target : expandedTargets) {