优化fastWrite

This commit is contained in:
redkale
2023-08-30 00:10:32 +08:00
parent 8db24bdcd6
commit d326750222

View File

@@ -384,7 +384,7 @@ abstract class AsyncNioConnection extends AsyncConnection {
int totalCount = 0; int totalCount = 0;
boolean hasRemain = true; boolean hasRemain = true;
boolean writeCompleted = true; boolean writeCompleted = true;
boolean fastMode = false;
if (writeByteBuffer == null && writeByteBuffers == null && writeByteTuple1Array == null && fastWriteCount.get() > 0) { if (writeByteBuffer == null && writeByteBuffers == null && writeByteTuple1Array == null && fastWriteCount.get() > 0) {
final ByteBuffer buffer = pollWriteBuffer(); final ByteBuffer buffer = pollWriteBuffer();
ByteBufferWriter writer = null; ByteBufferWriter writer = null;
@@ -400,6 +400,7 @@ abstract class AsyncNioConnection extends AsyncConnection {
writer.put(item); writer.put(item);
} }
} }
fastMode = true;
this.writeBuffersOffset = 0; this.writeBuffersOffset = 0;
if (writer == null) { if (writer == null) {
this.writeByteBuffer = buffer.flip(); this.writeByteBuffer = buffer.flip();
@@ -500,6 +501,9 @@ abstract class AsyncNioConnection extends AsyncConnection {
if (writeCompleted && (totalCount != 0 || !hasRemain)) { if (writeCompleted && (totalCount != 0 || !hasRemain)) {
handleWrite(this.writeTotal + totalCount, null); handleWrite(this.writeTotal + totalCount, null);
if (fastMode && fastWriteCount.get() > 0) {
doWrite();
}
} else if (writeKey == null) { } else if (writeKey == null) {
ioWriteThread.register(selector -> { ioWriteThread.register(selector -> {
try { try {