diff options
author | Håvard Pettersen <havardpe@oath.com> | 2020-02-05 15:37:03 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2020-02-05 15:37:03 +0000 |
commit | 942de58890c972539d8f8842823e6924f6e1ab05 (patch) | |
tree | 4513dade872a1bd3b3478df6a2e3e02d6a64958b /jrt/src/com/yahoo | |
parent | dd5388a31d85fdf2442db15b3ccfffef86392f67 (diff) |
simplify connector
Diffstat (limited to 'jrt/src/com/yahoo')
-rw-r--r-- | jrt/src/com/yahoo/jrt/Connector.java | 34 | ||||
-rw-r--r-- | jrt/src/com/yahoo/jrt/Transport.java | 5 |
2 files changed, 6 insertions, 33 deletions
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) {} } } |