Move TimestampGranularityMonitor to CommandEnvironment.
This is one of the last pieces of state in BlazeRuntime that isn't safe to
share across command invocations.
--
MOS_MIGRATED_REVID=117910631
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileStateFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileStateFunction.java
index 3e10330..d77f7e3 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/FileStateFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileStateFunction.java
@@ -21,6 +21,7 @@
import com.google.devtools.build.skyframe.SkyValue;
import java.io.IOException;
+import java.util.concurrent.atomic.AtomicReference;
/**
* A {@link SkyFunction} for {@link FileStateValue}s.
@@ -30,10 +31,10 @@
*/
public class FileStateFunction implements SkyFunction {
- private final TimestampGranularityMonitor tsgm;
+ private final AtomicReference<TimestampGranularityMonitor> tsgm;
private final ExternalFilesHelper externalFilesHelper;
- public FileStateFunction(TimestampGranularityMonitor tsgm,
+ public FileStateFunction(AtomicReference<TimestampGranularityMonitor> tsgm,
ExternalFilesHelper externalFilesHelper) {
this.tsgm = tsgm;
this.externalFilesHelper = externalFilesHelper;
@@ -48,7 +49,7 @@
if (env.valuesMissing()) {
return null;
}
- return FileStateValue.create(rootedPath, tsgm);
+ return FileStateValue.create(rootedPath, tsgm.get());
} catch (FileOutsidePackageRootsException e) {
throw new FileStateFunctionException(e);
} catch (IOException e) {