This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 3e7ef99bcfe65307914ecb0a7ab889987d246863 Author: lihan <[email protected]> AuthorDate: Thu Jun 2 16:57:39 2022 +0800 Polish. NioEndpoint --- java/org/apache/tomcat/util/net/NioEndpoint.java | 48 ++++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java b/java/org/apache/tomcat/util/net/NioEndpoint.java index a6eaac0b3a..c01e51d68a 100644 --- a/java/org/apache/tomcat/util/net/NioEndpoint.java +++ b/java/org/apache/tomcat/util/net/NioEndpoint.java @@ -563,6 +563,19 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> } } + private PollerEvent createPollerEvent(NioSocketWrapper socketWrapper, int interestOps) { + PollerEvent r = null; + if (eventCache != null) { + r = eventCache.pop(); + } + if (r == null) { + r = new PollerEvent(socketWrapper, interestOps); + } else { + r.reset(socketWrapper, interestOps); + } + return r; + } + /** * Add specified socket and associated pool to the poller. The socket will * be added to a temporary array, and polled first after a maximum amount @@ -574,16 +587,8 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> * the Poller */ public void add(NioSocketWrapper socketWrapper, int interestOps) { - PollerEvent r = null; - if (eventCache != null) { - r = eventCache.pop(); - } - if (r == null) { - r = new PollerEvent(socketWrapper, interestOps); - } else { - r.reset(socketWrapper, interestOps); - } - addEvent(r); + PollerEvent pollerEvent = createPollerEvent(socketWrapper, interestOps); + addEvent(pollerEvent); if (close) { processSocket(socketWrapper, SocketEvent.STOP, false); } @@ -654,16 +659,8 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> */ public void register(final NioSocketWrapper socketWrapper) { socketWrapper.interestOps(SelectionKey.OP_READ);//this is what OP_REGISTER turns into. - PollerEvent event = null; - if (eventCache != null) { - event = eventCache.pop(); - } - if (event == null) { - event = new PollerEvent(socketWrapper, OP_REGISTER); - } else { - event.reset(socketWrapper, OP_REGISTER); - } - addEvent(event); + PollerEvent pollerEvent = createPollerEvent(socketWrapper, OP_REGISTER); + addEvent(pollerEvent); } public void cancelledKey(SelectionKey sk, SocketWrapperBase<NioChannel> socketWrapper) { @@ -963,12 +960,12 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> // Avoid duplicate stop calls socketWrapper.interestOps(0); cancelledKey(key, socketWrapper); - } else if ((socketWrapper.interestOps() & SelectionKey.OP_READ) == SelectionKey.OP_READ || - (socketWrapper.interestOps() & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) { + } else if (socketWrapper.interestOpsHas(SelectionKey.OP_READ) || + socketWrapper.interestOpsHas(SelectionKey.OP_WRITE)) { boolean readTimeout = false; boolean writeTimeout = false; // Check for read timeout - if ((socketWrapper.interestOps() & SelectionKey.OP_READ) == SelectionKey.OP_READ) { + if (socketWrapper.interestOpsHas(SelectionKey.OP_READ)) { long delta = now - socketWrapper.getLastRead(); long timeout = socketWrapper.getReadTimeout(); if (timeout > 0 && delta > timeout) { @@ -976,7 +973,7 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> } } // Check for write timeout - if (!readTimeout && (socketWrapper.interestOps() & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) { + if (!readTimeout && socketWrapper.interestOpsHas(SelectionKey.OP_WRITE)) { long delta = now - socketWrapper.getLastWrite(); long timeout = socketWrapper.getWriteTimeout(); if (timeout > 0 && delta > timeout) { @@ -1052,6 +1049,9 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> public Poller getPoller() { return poller; } public int interestOps() { return interestOps; } public int interestOps(int ops) { this.interestOps = ops; return ops; } + public boolean interestOpsHas(int targetOp) { + return (this.interestOps() & targetOp) == targetOp; + } public void setSendfileData(SendfileData sf) { this.sendfileData = sf;} public SendfileData getSendfileData() { return this.sendfileData; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
