diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/EvaluableGraph.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/skyframe/EvaluableGraph.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/EvaluableGraph.java b/src/main/java/com/google/devtools/build/skyframe/EvaluableGraph.java index 6e93ce4ce3..51ba4031f6 100644 --- a/src/main/java/com/google/devtools/build/skyframe/EvaluableGraph.java +++ b/src/main/java/com/google/devtools/build/skyframe/EvaluableGraph.java @@ -20,18 +20,21 @@ import javax.annotation.Nullable; /** * Interface between a single version of the graph and the evaluator. Supports mutation of that * single version of the graph. + * + * <p>Certain graph implementations can throw {@link InterruptedException} when trying to retrieve + * node entries. Such exceptions should not be caught locally -- they should be allowed to propagate + * up. */ @ThreadSafe interface EvaluableGraph extends QueryableGraph, DeletableGraph { /** - * Like {@link QueryableGraph#getBatch}, except it creates a new node for each key - * not already present in the graph. Thus, the returned map will have an entry for each key in - * {@code keys}. + * Like {@link QueryableGraph#getBatch}, except it creates a new node for each key not already + * present in the graph. Thus, the returned map will have an entry for each key in {@code keys}. * * @param requestor if non-{@code null}, the node on behalf of which the given {@code keys} are * being requested. * @param reason the reason the nodes are being requested. */ - Map<SkyKey, NodeEntry> createIfAbsentBatch( - @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys); + Map<SkyKey, ? extends NodeEntry> createIfAbsentBatch( + @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys) throws InterruptedException; } |