From 20ebcad982b38638209dd40a506e2a672914e2b2 Mon Sep 17 00:00:00 2001 From: redkale Date: Fri, 31 Mar 2023 08:11:19 +0800 Subject: [PATCH] =?UTF-8?q?client=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/redkale/net/client/Client.java | 49 +++++++++---------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/src/main/java/org/redkale/net/client/Client.java b/src/main/java/org/redkale/net/client/Client.java index 4bd40e622..3013f129e 100644 --- a/src/main/java/org/redkale/net/client/Client.java +++ b/src/main/java/org/redkale/net/client/Client.java @@ -197,41 +197,36 @@ public abstract class Client, R extends ClientR if (closed.compareAndSet(false, true)) { this.timeoutScheduler.shutdownNow(); for (ClientConnection conn : this.connArray) { - if (conn == null) { - continue; - } - final R closeReq = closeRequestSupplier == null ? null : closeRequestSupplier.get(); - if (closeReq == null) { - conn.dispose(null); - } else { - try { - conn.writeChannel(closeReq).get(1, TimeUnit.SECONDS); - } catch (Exception e) { - } - conn.dispose(null); - } + closeConnection(conn); } for (AddressConnEntry entry : this.connAddrEntrys.values()) { - ClientConnection conn = entry.connection; - if (conn == null) { - continue; - } - final R closeReq = closeRequestSupplier == null ? null : closeRequestSupplier.get(); - if (closeReq == null) { - conn.dispose(null); - } else { - try { - conn.writeChannel(closeReq).get(1, TimeUnit.SECONDS); - } catch (Exception e) { - } - conn.dispose(null); - } + closeConnection(entry.connection); } this.connAddrEntrys.clear(); + for (ClientConnection conn : this.localConnList) { + closeConnection(conn); + } + this.localConnList.clear(); group.close(); } } + private void closeConnection(ClientConnection conn) { + if (conn == null) { + return; + } + final R closeReq = closeRequestSupplier == null ? null : closeRequestSupplier.get(); + if (closeReq == null) { + conn.dispose(null); + } else { + try { + conn.writeChannel(closeReq).get(1, TimeUnit.SECONDS); + } catch (Exception e) { + } + conn.dispose(null); + } + } + public final CompletableFuture

sendAsync(R request) { if (request.workThread == null) { request.workThread = WorkThread.currWorkThread();