aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java
diff options
context:
space:
mode:
authorGravatar Philipp Wollermann <philwo@google.com>2015-11-04 17:52:32 +0000
committerGravatar John Field <jfield@google.com>2015-11-05 16:49:28 +0000
commitaf33c67de5015fdfbb92d3ca6d5c99508540cb01 (patch)
treead7bba7397ff5030b8e8ef365b55a7c77ba7f283 /src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java
parent53fb4d0ef10dea9d58f4b17f08c59c8e81ebc09a (diff)
workers: Restart worker processes when their binary has changed since they were launched.
-- MOS_MIGRATED_REVID=107050157
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java
index 076b1d4638..86494ea586 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.worker;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.common.hash.HashCode;
import com.google.devtools.build.lib.actions.BaseSpawn;
import com.google.devtools.build.lib.vfs.Path;
@@ -32,11 +33,23 @@ final class WorkerKey {
private final Path workDir;
private final String mnemonic;
- WorkerKey(List<String> args, Map<String, String> env, Path workDir, String mnemonic) {
+ /**
+ * This is used during validation whether a worker is still usable. It is not used to uniquely
+ * identify a kind of worker, thus it is not to be used by the .equals() / .hashCode() methods.
+ */
+ private final HashCode workerFilesHash;
+
+ WorkerKey(
+ List<String> args,
+ Map<String, String> env,
+ Path workDir,
+ String mnemonic,
+ HashCode workerFilesHash) {
this.args = ImmutableList.copyOf(Preconditions.checkNotNull(args));
this.env = ImmutableMap.copyOf(Preconditions.checkNotNull(env));
this.workDir = Preconditions.checkNotNull(workDir);
this.mnemonic = Preconditions.checkNotNull(mnemonic);
+ this.workerFilesHash = Preconditions.checkNotNull(workerFilesHash);
}
public ImmutableList<String> getArgs() {
@@ -55,6 +68,10 @@ final class WorkerKey {
return mnemonic;
}
+ public HashCode getWorkerFilesHash() {
+ return workerFilesHash;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {