Only call key.interestedOps() if needed
This commit is contained in:
parent
0e8fb21554
commit
252bd25855
@ -231,9 +231,9 @@ public class NioSocketChannel extends AbstractNioByteChannel implements io.netty
|
|||||||
final int expectedWrittenBytes = buf.readableBytes();
|
final int expectedWrittenBytes = buf.readableBytes();
|
||||||
final int writtenBytes = buf.readBytes(javaChannel(), expectedWrittenBytes);
|
final int writtenBytes = buf.readBytes(javaChannel(), expectedWrittenBytes);
|
||||||
|
|
||||||
final SelectionKey key = selectionKey();
|
|
||||||
final int interestOps = key.interestOps();
|
|
||||||
if (writtenBytes >= expectedWrittenBytes) {
|
if (writtenBytes >= expectedWrittenBytes) {
|
||||||
|
final SelectionKey key = selectionKey();
|
||||||
|
final int interestOps = key.interestOps();
|
||||||
// Wrote the outbound buffer completely - clear OP_WRITE.
|
// Wrote the outbound buffer completely - clear OP_WRITE.
|
||||||
if ((interestOps & SelectionKey.OP_WRITE) != 0) {
|
if ((interestOps & SelectionKey.OP_WRITE) != 0) {
|
||||||
key.interestOps(interestOps & ~SelectionKey.OP_WRITE);
|
key.interestOps(interestOps & ~SelectionKey.OP_WRITE);
|
||||||
@ -248,6 +248,8 @@ public class NioSocketChannel extends AbstractNioByteChannel implements io.netty
|
|||||||
// 2) If 'lastSpin' is true, the caller will not retry.
|
// 2) If 'lastSpin' is true, the caller will not retry.
|
||||||
// - Set OP_WRITE so that the event loop calls flushForcibly() later.
|
// - Set OP_WRITE so that the event loop calls flushForcibly() later.
|
||||||
if (writtenBytes > 0 || lastSpin) {
|
if (writtenBytes > 0 || lastSpin) {
|
||||||
|
final SelectionKey key = selectionKey();
|
||||||
|
final int interestOps = key.interestOps();
|
||||||
if ((interestOps & SelectionKey.OP_WRITE) == 0) {
|
if ((interestOps & SelectionKey.OP_WRITE) == 0) {
|
||||||
key.interestOps(interestOps | SelectionKey.OP_WRITE);
|
key.interestOps(interestOps | SelectionKey.OP_WRITE);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user