aboutsummaryrefslogtreecommitdiffstats
path: root/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationMutex.java
diff options
context:
space:
mode:
authorbjormel <bjormel@yahooinc.com>2023-10-26 13:59:28 +0000
committerbjormel <bjormel@yahooinc.com>2023-10-26 13:59:28 +0000
commit567be9a1f6353cec41c23bfd1fcd46b4b2a4d2d7 (patch)
tree4664a743e166a5e11aee7b9acd70ad8ee2617612 /config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationMutex.java
parente9058b555d4dfea2f6c872d9a677e8678b569569 (diff)
parentbce3b8e926bf9da880172acbe1ba4b12d5e026d6 (diff)
Merge branch 'master' into bjormel/aws-main-controllerbjormel/aws-main-controller
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationMutex.java')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationMutex.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationMutex.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationMutex.java
new file mode 100644
index 00000000000..f147bde65f7
--- /dev/null
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationMutex.java
@@ -0,0 +1,32 @@
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.config.provision;
+
+import com.yahoo.transaction.Mutex;
+
+import java.util.Objects;
+
+/**
+ * A type-safe wrapper for an application's provision lock.
+ *
+ * @author mpolden
+ */
+public class ApplicationMutex implements Mutex {
+
+ private final ApplicationId application;
+ private final Mutex lock;
+
+ public ApplicationMutex(ApplicationId application, Mutex lock) {
+ this.application = Objects.requireNonNull(application);
+ this.lock = Objects.requireNonNull(lock);
+ }
+
+ public ApplicationId application() {
+ return application;
+ }
+
+ @Override
+ public void close() {
+ lock.close();
+ }
+
+}