Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Unified Diff: pkg/analyzer/lib/src/generated/engine.dart

Issue 2132073003: Validate cache consistency asynchronously. Compute modification times of physical files in a separa… (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/generated/engine.dart
diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart
index 4ddc93d4989d2f9dc288e57c70f7d84af01b4c0f..9cd12c7c6c0c394ab7d0c5859ae79012e407636d 100644
--- a/pkg/analyzer/lib/src/generated/engine.dart
+++ b/pkg/analyzer/lib/src/generated/engine.dart
@@ -629,14 +629,6 @@ abstract class AnalysisContext {
* so that the default contents will be returned.
*/
void setContents(Source source, String contents);
-
- /**
- * Check the cache for any invalid entries (entries whose modification time
- * does not match the modification time of the source associated with the
- * entry). Invalid entries will be marked as invalid so that the source will
- * be re-analyzed. Return `true` if at least one entry was invalid.
- */
- bool validateCacheConsistency();
}
/**
@@ -1572,6 +1564,31 @@ class CacheConsistencyValidationStatistics {
}
/**
+ * Interface for cache consistency validation in an [InternalAnalysisContext].
+ */
+abstract class CacheConsistencyValidator {
+ /**
+ * Return sources for which the contexts needs to know modification times.
+ */
+ List<Source> getSourcesToComputeModificationTimes();
+
+ /**
+ * Notify the validator that modification [times] were computed for [sources].
+ * If a source does not exist, its modification time is `-1`.
+ *
+ * It's up to the validator and the context how to use this information,
+ * the list of sources the context has might have been changed since the
+ * previous invocation of [getSourcesToComputeModificationTimes].
+ *
+ * Check the cache for any invalid entries (entries whose modification time
+ * does not match the modification time of the source associated with the
+ * entry). Invalid entries will be marked as invalid so that the source will
+ * be re-analyzed. Return `true` if at least one entry was invalid.
+ */
+ bool sourceModificationTimesComputed(List<Source> sources, List<int> times);
+}
+
+/**
* The possible states of cached data.
*/
class CacheState extends Enum<CacheState> {
@@ -2056,6 +2073,11 @@ abstract class InternalAnalysisContext implements AnalysisContext {
AnalysisCache get analysisCache;
/**
+ * The cache consistency validator for this context.
+ */
+ CacheConsistencyValidator get cacheConsistencyValidator;
+
+ /**
* Allow the client to supply its own content cache. This will take the
* place of the content cache created by default, allowing clients to share
* the content cache between contexts.

Powered by Google App Engine
This is Rietveld 408576698