Internal change
PiperOrigin-RevId: 186397865
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java b/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
index d1836a6..bd2f026 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
@@ -477,17 +477,14 @@
final AtomicInteger numKeysScanned = new AtomicInteger(0);
final AtomicInteger numKeysChecked = new AtomicInteger(0);
ElapsedTimeReceiver elapsedTimeReceiver =
- new ElapsedTimeReceiver() {
- @Override
- public void accept(long elapsedTimeNanos) {
- if (elapsedTimeNanos > 0) {
- logger.info(
- String.format(
- "Spent %d ms checking %d filesystem nodes (%d scanned)",
- TimeUnit.MILLISECONDS.convert(elapsedTimeNanos, TimeUnit.NANOSECONDS),
- numKeysChecked.get(),
- numKeysScanned.get()));
- }
+ elapsedTimeNanos -> {
+ if (elapsedTimeNanos > 0) {
+ logger.info(
+ String.format(
+ "Spent %d ms checking %d filesystem nodes (%d scanned)",
+ TimeUnit.MILLISECONDS.convert(elapsedTimeNanos, TimeUnit.NANOSECONDS),
+ numKeysChecked.get(),
+ numKeysScanned.get()));
}
};
try (AutoProfiler prof = AutoProfiler.create(elapsedTimeReceiver)) {
@@ -496,20 +493,24 @@
if (!checker.applies(key)) {
continue;
}
- final SkyValue value = fetcher.get(key);
- if (!checkMissingValues && value == null) {
- continue;
- }
executor.execute(
wrapper.wrap(
- new Runnable() {
- @Override
- public void run() {
- numKeysChecked.incrementAndGet();
- DirtyResult result = checker.check(key, value, tsgm);
- if (result.isDirty()) {
- batchResult.add(key, value, result.getNewValue());
- }
+ () -> {
+ SkyValue value;
+ try {
+ value = fetcher.get(key);
+ } catch (InterruptedException e) {
+ // Exit fast. Interrupt is handled below on the main thread.
+ return;
+ }
+ if (!checkMissingValues && value == null) {
+ return;
+ }
+
+ numKeysChecked.incrementAndGet();
+ DirtyResult result = checker.check(key, value, tsgm);
+ if (result.isDirty()) {
+ batchResult.add(key, value, result.getNewValue());
}
}));
}