aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2017-06-14 13:40:23 +0200
committerGravatar Yun Peng <pcloudy@google.com>2017-06-14 16:20:26 +0200
commitda0a701d010785b9687cf0548c460f5116f3b176 (patch)
treeb2d6de174c18d14235bc770d231da61e6289fea7 /src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
parent624c706e49076912350277db746f5d43c484e591 (diff)
Propagate postable events further up
With the introduction of the ExtendedEventHandler, SkyFunctions were given the possibility to post additional Postable events in addition to the standard events. As SkyFunctions have to be restartable, events are collected first and only posted after the function is finished. Make sure that this also applies to postable events and they are not dropped. Change-Id: Ie1c3a0134935c75ea984fa2cc924e7327a9da81f PiperOrigin-RevId: 158964337
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
index 994472e787..47392e9b86 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.events.Event;
+import com.google.devtools.build.lib.events.ExtendedEventHandler.Postable;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.events.StoredEventHandler;
import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException;
@@ -447,6 +448,9 @@ public class PackageFunction implements SkyFunction {
Package pkg = workspace.getPackage();
Event.replayEventsOn(env.getListener(), pkg.getEvents());
+ for (Postable post : pkg.getPosts()) {
+ env.getListener().post(post);
+ }
packageFactory.afterDoneLoadingPackage(pkg);
return new PackageValue(pkg);
@@ -594,6 +598,9 @@ public class PackageFunction implements SkyFunction {
}
Event.replayEventsOn(env.getListener(), pkgBuilder.getEvents());
+ for (Postable post : pkgBuilder.getPosts()) {
+ env.getListener().post(post);
+ }
if (packageShouldBeConsideredInError) {
pkgBuilder.setContainsErrors();