diff options
author | Klaus Aehlig <aehlig@google.com> | 2018-02-12 01:22:31 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-12 01:24:13 -0800 |
commit | d9aa4039f4cf1803f2b03d03479f4bc66c62ba61 (patch) | |
tree | 36525b2552283c9f430c417003159f8065b26b8f /src/main/java/com/google/devtools/build/lib/pkgcache | |
parent | e45c0555cfb15ce403ff2f447edb74495a633ec1 (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.java | 9 |
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) { |