diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-09-27 08:14:24 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-09-27 08:14:24 +0200 |
commit | f144f291504fe451e5220257ecb2b6dcbd30fecc (patch) | |
tree | 650da04c2661a4ddaeafef8d4668056ee21dbd85 /messagebus | |
parent | f188a20c6ce8cecb8a3da4f5dc5f37e42899a338 (diff) |
Better names
Diffstat (limited to 'messagebus')
-rw-r--r-- | messagebus/src/main/java/com/yahoo/messagebus/network/NetworkMultiplexer.java | 24 | ||||
-rw-r--r-- | messagebus/src/test/java/com/yahoo/messagebus/network/NetworkMultiplexerTest.java | 2 |
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); |