diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2017-09-20 13:44:13 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2017-09-22 09:13:01 +0200 |
commit | ab9a46fd9163b2cbec7811ef6e1e405685da269d (patch) | |
tree | feab2e862c58677149a4cc9fd2894387819bbc39 /node-admin | |
parent | 0589e4cdceb62e73ffbd6c620f5dea2ea6a6812e (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.java | 12 |
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(); } } |