summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2017-09-20 13:44:13 +0200
committerValerij Fredriksen <valerijf@oath.com>2017-09-22 09:13:01 +0200
commitab9a46fd9163b2cbec7811ef6e1e405685da269d (patch)
treefeab2e862c58677149a4cc9fd2894387819bbc39 /node-admin
parent0589e4cdceb62e73ffbd6c620f5dea2ea6a6812e (diff)
Add locks to ComponentsProviderImpl
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
index 73b187b7e08..512d957185b 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
@@ -3,6 +3,8 @@ package com.yahoo.vespa.hosted.node.admin.provider;
import com.google.inject.Inject;
import com.yahoo.component.AbstractComponent;
+import com.yahoo.concurrent.lock.Lock;
+import com.yahoo.concurrent.lock.Locking;
import com.yahoo.net.HostName;
import com.yahoo.system.ProcessExecuter;
@@ -36,14 +38,17 @@ import static com.yahoo.vespa.defaults.Defaults.getDefaults;
* @author dybis
*/
public class ComponentsProviderImpl extends AbstractComponent implements ComponentsProvider {
- private final NodeAdminStateUpdater nodeAdminStateUpdater;
-
private static final int WEB_SERVICE_PORT = getDefaults().vespaWebServicePort();
private static final Duration NODE_AGENT_SCAN_INTERVAL = Duration.ofSeconds(30);
private static final Duration NODE_ADMIN_CONVERGE_STATE_INTERVAL = Duration.ofSeconds(30);
+ private final NodeAdminStateUpdater nodeAdminStateUpdater;
+ private final Lock classLock;
+
@Inject
- public ComponentsProviderImpl(Docker docker, MetricReceiverWrapper metricReceiver) {
+ public ComponentsProviderImpl(Docker docker, MetricReceiverWrapper metricReceiver, Locking locking) {
+ classLock = locking.lock(this.getClass());
+
Clock clock = Clock.systemUTC();
String dockerHostHostName = HostName.getLocalhost();
ProcessExecuter processExecuter = new ProcessExecuter();
@@ -76,5 +81,6 @@ public class ComponentsProviderImpl extends AbstractComponent implements Compone
@Override
public void deconstruct() {
nodeAdminStateUpdater.stop();
+ classLock.close();
}
}