aboutsummaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-09-27 08:14:24 +0200
committerJon Marius Venstad <venstad@gmail.com>2021-09-27 08:14:24 +0200
commitf144f291504fe451e5220257ecb2b6dcbd30fecc (patch)
tree650da04c2661a4ddaeafef8d4668056ee21dbd85 /messagebus
parentf188a20c6ce8cecb8a3da4f5dc5f37e42899a338 (diff)
Better names
Diffstat (limited to 'messagebus')
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/network/NetworkMultiplexer.java24
-rw-r--r--messagebus/src/test/java/com/yahoo/messagebus/network/NetworkMultiplexerTest.java2
2 files changed, 14 insertions, 12 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/NetworkMultiplexer.java b/messagebus/src/main/java/com/yahoo/messagebus/network/NetworkMultiplexer.java
index 7b3977951b3..4bd9bbf7f7f 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/network/NetworkMultiplexer.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/network/NetworkMultiplexer.java
@@ -10,7 +10,6 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
/**
@@ -33,16 +32,16 @@ public class NetworkMultiplexer implements NetworkOwner {
private final Network net;
private final Deque<NetworkOwner> owners = new ConcurrentLinkedDeque<>();
private final Map<String, Deque<NetworkOwner>> sessions = new ConcurrentHashMap<>();
- private final AtomicBoolean destructible;
+ private final AtomicBoolean disowned;
private NetworkMultiplexer(Network net, boolean shared) {
net.attach(this);
this.net = net;
- this.destructible = new AtomicBoolean( ! shared);
+ this.disowned = new AtomicBoolean( ! shared);
}
/** Returns a network multiplexer which will be shared between several {@link NetworkOwner}s,
- * and will shut down when all these have detached, and {@link #destroy()} has been called, in any order. */
+ * and will shut down when all these have detached, and {@link #disown()} has been called, in any order. */
public static NetworkMultiplexer shared(Network net) {
return new NetworkMultiplexer(net, true);
}
@@ -101,6 +100,7 @@ public class NetworkMultiplexer implements NetworkOwner {
owner.deliverMessage(message, session);
}
+ /** Attach the network owner to this, allowing this to forward messages to it. */
public void attach(NetworkOwner owner) {
if (owners.contains(owner))
throw new IllegalArgumentException(owner + " is already attached to this");
@@ -108,24 +108,26 @@ public class NetworkMultiplexer implements NetworkOwner {
owners.add(owner);
}
+ /** Detach the network owner from this, no longer allowing messages to it, and shutting down this is ownerless. */
public void detach(NetworkOwner owner) {
if ( ! owners.remove(owner))
throw new IllegalArgumentException(owner + " not attached to this");
- countDown();
+ destroyIfOwnerless();
}
- public void destroy() {
- if (destructible.getAndSet(true))
+ /** Signal that external ownership of this is relinquished, allowing destruction on last owner detachment. */
+ public void disown() {
+ if (disowned.getAndSet(true))
throw new IllegalStateException("Destroy called on a dedicated multiplexer--" +
"this automatically shuts down when detached from--or " +
"called multiple times on a shared multiplexer");
- countDown();
+ destroyIfOwnerless();
}
- private void countDown() {
- if (destructible.get() && owners.isEmpty())
+ private void destroyIfOwnerless() {
+ if (disowned.get() && owners.isEmpty())
net.shutdown();
}
@@ -139,7 +141,7 @@ public class NetworkMultiplexer implements NetworkOwner {
"net=" + net +
", owners=" + owners +
", sessions=" + sessions +
- ", destructible=" + destructible +
+ ", destructible=" + disowned +
'}';
}
diff --git a/messagebus/src/test/java/com/yahoo/messagebus/network/NetworkMultiplexerTest.java b/messagebus/src/test/java/com/yahoo/messagebus/network/NetworkMultiplexerTest.java
index 2f0aa321e6f..6451a692fb6 100644
--- a/messagebus/src/test/java/com/yahoo/messagebus/network/NetworkMultiplexerTest.java
+++ b/messagebus/src/test/java/com/yahoo/messagebus/network/NetworkMultiplexerTest.java
@@ -87,7 +87,7 @@ public class NetworkMultiplexerTest {
assertFalse(net.shutDown.get());
shared.attach(owner2);
- shared.destroy();
+ shared.disown();
assertFalse(net.shutDown.get());
shared.detach(owner2);