convert for virtual thread

This commit is contained in:
NetRiceCake
2025-12-07 03:32:30 +09:00
parent 4739f63391
commit b2bd90097b
6 changed files with 44 additions and 67 deletions

View File

@@ -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;