diff options
author | Damien Martin-Guillerez <dmarting@google.com> | 2016-10-13 19:18:13 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2016-10-14 09:32:58 +0000 |
commit | 2c91836c8d4232f26a5b764ea91b7cdb47240b7e (patch) | |
tree | 0b1d6be682f727627d1b3cd305d351eed4b854a0 /src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java | |
parent | 0c7a42a09d85ddffd9b860bcb31e4c43a00632c1 (diff) |
Rollback of commit 2891ec527eed27d0c6460d66f51cb66a43373b6a.
*** Reason for rollback ***
Causes our integration tests on Darwin to time out
*** Original change description ***
Make --watchfs a common command option.
Adding an options parameter to DiffAwareness#getCurrentView seems like the
simplest way to achieve that.
Alternatives considered:
1. Making the diff awareness modules stateful. However, I did not want to do so
as I've also been working on improving the module API to reduce state, or at
least to have a proper lifecycle management for any necessary state.
2. Making the watchFs flag a constructor parameter. However, that would also
invalidate any implement...
***
--
MOS_MIGRATED_REVID=136070807
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java b/src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java index 76f00a7fb4..02870970d4 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java @@ -13,16 +13,17 @@ // limitations under the License. package com.google.devtools.build.lib.skyframe; -import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; import com.google.devtools.build.lib.skyframe.DiffAwareness.View; import com.google.devtools.build.lib.vfs.ModifiedFileSet; import com.google.devtools.build.lib.vfs.Path; -import com.google.devtools.common.options.OptionsClassProvider; + import java.util.Map; import java.util.logging.Logger; + import javax.annotation.Nullable; /** @@ -33,13 +34,11 @@ public final class DiffAwarenessManager { private static final Logger LOG = Logger.getLogger(DiffAwarenessManager.class.getName()); - // The manager attempts to instantiate these in the order in which they are passed to the - // constructor; this is critical in the case where a factory always succeeds. - private final ImmutableList<? extends DiffAwareness.Factory> diffAwarenessFactories; + private final ImmutableSet<? extends DiffAwareness.Factory> diffAwarenessFactories; private Map<Path, DiffAwarenessState> currentDiffAwarenessStates = Maps.newHashMap(); public DiffAwarenessManager(Iterable<? extends DiffAwareness.Factory> diffAwarenessFactories) { - this.diffAwarenessFactories = ImmutableList.copyOf(diffAwarenessFactories); + this.diffAwarenessFactories = ImmutableSet.copyOf(diffAwarenessFactories); } private static class DiffAwarenessState { @@ -80,8 +79,7 @@ public final class DiffAwarenessManager { * Gets the set of changed files since the last call with this path entry, or * {@code ModifiedFileSet.EVERYTHING_MODIFIED} if this is the first such call. */ - public ProcessableModifiedFileSet getDiff( - EventHandler eventHandler, Path pathEntry, OptionsClassProvider options) { + public ProcessableModifiedFileSet getDiff(EventHandler eventHandler, Path pathEntry) { DiffAwarenessState diffAwarenessState = maybeGetDiffAwarenessState(pathEntry); if (diffAwarenessState == null) { return BrokenProcessableModifiedFileSet.INSTANCE; @@ -89,7 +87,7 @@ public final class DiffAwarenessManager { DiffAwareness diffAwareness = diffAwarenessState.diffAwareness; View newView; try { - newView = diffAwareness.getCurrentView(options); + newView = diffAwareness.getCurrentView(); } catch (BrokenDiffAwarenessException e) { handleBrokenDiffAwareness(eventHandler, pathEntry, e); return BrokenProcessableModifiedFileSet.INSTANCE; |