convert for virtual thread
This commit is contained in:
@@ -10,7 +10,6 @@ import io.netty.handler.codec.MessageToMessageCodec;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
public class LocoCodec extends MessageToMessageCodec<byte[], LocoPacket> {
|
||||
@@ -20,13 +19,10 @@ public class LocoCodec extends MessageToMessageCodec<byte[], LocoPacket> {
|
||||
|
||||
private final Map<Integer, Future<LocoPacket>> waitList;
|
||||
|
||||
private final LocoSocketHandler locoSocektHandler;
|
||||
private final LocoSocketHandler locoSocketHandler;
|
||||
|
||||
private final ExecutorService handlerPool;
|
||||
|
||||
public LocoCodec(LocoSocketHandler locoSocektHandler, ExecutorService handlerPool, Map<Integer, Future<LocoPacket>> waitList) {
|
||||
this.locoSocektHandler = locoSocektHandler;
|
||||
this.handlerPool = handlerPool;
|
||||
public LocoCodec(LocoSocketHandler locoSocketHandler, Map<Integer, Future<LocoPacket>> waitList) {
|
||||
this.locoSocketHandler = locoSocketHandler;
|
||||
this.waitList = waitList;
|
||||
}
|
||||
|
||||
@@ -68,16 +64,16 @@ public class LocoCodec extends MessageToMessageCodec<byte[], LocoPacket> {
|
||||
}
|
||||
if (currentLocoPacket.getBodyLength() > buffer.length) break;
|
||||
byte[] body = ByteUtil.sliceBytes(buffer, 0, currentLocoPacket.getBodyLength());
|
||||
//System.out.println(currentLocoPacket.getMethod());
|
||||
//System.out.println(BsonUtil.bsonToJson(body));
|
||||
System.out.println(currentLocoPacket.getMethod());
|
||||
System.out.println(BsonUtil.bsonToJson(body));
|
||||
buffer = ByteUtil.sliceBytes(buffer, currentLocoPacket.getBodyLength(), buffer.length - currentLocoPacket.getBodyLength());
|
||||
currentLocoPacket.setBody(body);
|
||||
if (waitList.containsKey(currentLocoPacket.getPacketId())) {
|
||||
((CompletableFuture<LocoPacket>) waitList.get(currentLocoPacket.getPacketId())).complete(currentLocoPacket);
|
||||
} else {
|
||||
final LocoPacket p = currentLocoPacket;
|
||||
handlerPool.execute(() -> {
|
||||
locoSocektHandler.onPacket(p);
|
||||
Thread.ofVirtual().start(() -> {
|
||||
locoSocketHandler.onPacket(p);
|
||||
});
|
||||
}
|
||||
currentLocoPacket = null;
|
||||
|
||||
Reference in New Issue
Block a user