From 942de58890c972539d8f8842823e6924f6e1ab05 Mon Sep 17 00:00:00 2001 From: HÃ¥vard Pettersen Date: Wed, 5 Feb 2020 15:37:03 +0000 Subject: simplify connector --- jrt/src/com/yahoo/jrt/Connector.java | 34 ++++------------------------------ jrt/src/com/yahoo/jrt/Transport.java | 5 ++--- 2 files changed, 6 insertions(+), 33 deletions(-) (limited to 'jrt/src') diff --git a/jrt/src/com/yahoo/jrt/Connector.java b/jrt/src/com/yahoo/jrt/Connector.java index 61143e8a78b..98bf5124545 100644 --- a/jrt/src/com/yahoo/jrt/Connector.java +++ b/jrt/src/com/yahoo/jrt/Connector.java @@ -10,20 +10,10 @@ import java.util.concurrent.TimeUnit; class Connector { - private final Transport parent; private final ExecutorService executor = Executors.newCachedThreadPool(ThreadFactoryFactory.getDaemonThreadFactory("jrt.connector")); - private boolean done = false; private void connect(Connection conn) { - try { - conn.transportThread().addConnection(conn.connect()); - } catch (Throwable problem) { - parent.handleFailure(problem, Connector.this); - } - } - - public Connector(Transport parent) { - this.parent = parent; + conn.transportThread().addConnection(conn.connect()); } public void connectLater(Connection conn) { @@ -32,35 +22,19 @@ class Connector { } catch (RejectedExecutionException e) { conn.transportThread().addConnection(conn); } - } public Connector shutdown() { executor.shutdown(); - join(); - synchronized (this) { - done = true; - notifyAll(); - } - return this; - } - - public synchronized void waitDone() { - while (!done) { - try { wait(); } catch (InterruptedException x) {} - } - } - - public synchronized Connector exit() { - notifyAll(); return this; } public void join() { while (true) { try { - executor.awaitTermination(60, TimeUnit.SECONDS); - return; + if (executor.awaitTermination(60, TimeUnit.SECONDS)) { + return; + } } catch (InterruptedException e) {} } } diff --git a/jrt/src/com/yahoo/jrt/Transport.java b/jrt/src/com/yahoo/jrt/Transport.java index f4eb1acd096..ad42409c48a 100644 --- a/jrt/src/com/yahoo/jrt/Transport.java +++ b/jrt/src/com/yahoo/jrt/Transport.java @@ -46,7 +46,7 @@ public class Transport { this.fatalHandler = fatalHandler; // NB: this must be set first } this.cryptoEngine = cryptoEngine; - connector = new Connector(this); + connector = new Connector(); worker = new Worker(this); runCnt = new AtomicInteger(numThreads); for (int i = 0; i < numThreads; ++i) { @@ -162,7 +162,7 @@ public class Transport { * @return this object, to enable chaining with join **/ public Transport shutdown() { - connector.shutdown().waitDone(); + connector.shutdown().join(); for (TransportThread thread: threads) { thread.shutdown(); } @@ -181,7 +181,6 @@ public class Transport { void notifyDone(TransportThread self) { if (runCnt.decrementAndGet() == 0) { worker.shutdown().join(); - connector.exit().join(); try { cryptoEngine.close(); } catch (Exception e) {} } } -- cgit v1.2.3