From ea13e891468e6dcd093a7d7c54e4bc85d7c260c9 Mon Sep 17 00:00:00 2001 From: redkale Date: Fri, 17 Nov 2023 20:10:08 +0800 Subject: [PATCH] =?UTF-8?q?ClientCodec=E4=BF=AE=E5=A4=8DrunWork=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/redkale/net/client/ClientCodec.java | 74 ++++--------------- 1 file changed, 16 insertions(+), 58 deletions(-) diff --git a/src/main/java/org/redkale/net/client/ClientCodec.java b/src/main/java/org/redkale/net/client/ClientCodec.java index c958bed78..c9f0ff294 100644 --- a/src/main/java/org/redkale/net/client/ClientCodec.java +++ b/src/main/java/org/redkale/net/client/ClientCodec.java @@ -120,7 +120,7 @@ public abstract class ClientCodec { - Traces.currentTraceid(request.traceid); - respFuture.complete(rs); - Traces.removeTraceid(); - }); - } else if (workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE - if (workThread.inIO()) { - Traces.currentTraceid(request.traceid); - respFuture.complete(rs); - Traces.removeTraceid(); - } else { - workThread.execute(() -> { - Traces.currentTraceid(request.traceid); - respFuture.complete(rs); - Traces.removeTraceid(); - }); - } + if (workThread.inIO() && workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE + Traces.currentTraceid(request.traceid); + respFuture.complete(rs); + Traces.removeTraceid(); } else { - Utility.execute(() -> { + workThread.runWork(() -> { Traces.currentTraceid(request.traceid); respFuture.complete(rs); Traces.removeTraceid(); }); } } else { //异常 - if (workThread == null) { - readThread.runWork(() -> { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(exc); - Traces.removeTraceid(); - }); - } else if (workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE - if (workThread.inIO()) { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(exc); - Traces.removeTraceid(); - } else { - workThread.execute(() -> { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(exc); - Traces.removeTraceid(); - }); - } + if (workThread.inIO() && workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE + Traces.currentTraceid(request.traceid); + respFuture.completeExceptionally(exc); + Traces.removeTraceid(); } else { - Utility.execute(() -> { + workThread.runWork(() -> { Traces.currentTraceid(request.traceid); respFuture.completeExceptionally(exc); Traces.removeTraceid(); @@ -198,26 +170,12 @@ public abstract class ClientCodec { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(t); - Traces.removeTraceid(); - }); - } else if (workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE - if (workThread.inIO()) { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(t); - Traces.removeTraceid(); - } else { - workThread.execute(() -> { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(t); - Traces.removeTraceid(); - }); - } + if (workThread.inIO() && workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE + Traces.currentTraceid(request.traceid); + respFuture.completeExceptionally(t); + Traces.removeTraceid(); } else { - Utility.execute(() -> { + workThread.runWork(() -> { Traces.currentTraceid(request.traceid); respFuture.completeExceptionally(t); Traces.removeTraceid();