diff options
author | Klaus Aehlig <aehlig@google.com> | 2017-06-14 13:40:23 +0200 |
---|---|---|
committer | Yun Peng <pcloudy@google.com> | 2017-06-14 16:20:26 +0200 |
commit | da0a701d010785b9687cf0548c460f5116f3b176 (patch) | |
tree | b2d6de174c18d14235bc770d231da61e6289fea7 /src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java | |
parent | 624c706e49076912350277db746f5d43c484e591 (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.java | 7 |
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(); |