diff options
author | 2015-11-04 17:52:32 +0000 | |
---|---|---|
committer | 2015-11-05 16:49:28 +0000 | |
commit | af33c67de5015fdfbb92d3ca6d5c99508540cb01 (patch) | |
tree | ad7bba7397ff5030b8e8ef365b55a7c77ba7f283 /src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java | |
parent | 53fb4d0ef10dea9d58f4b17f08c59c8e81ebc09a (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.java | 19 |
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) { |