MCPcopy Create free account
hub / github.com/apache/tomcat / events

Method events

java/org/apache/tomcat/util/net/NioEndpoint.java:828–880  ·  view source on GitHub ↗

Processes events in the event queue of the Poller. @return true if some events were processed, false if queue was empty

()

Source from the content-addressed store, hash-verified

826 * @return <code>true</code> if some events were processed, <code>false</code> if queue was empty
827 */
828 public boolean events() {
829 boolean result = false;
830
831 PollerEvent pe;
832 for (int i = 0, size = events.size(); i < size && (pe = events.poll()) != null; i++) {
833 result = true;
834 NioSocketWrapper socketWrapper = pe.getSocketWrapper();
835 SocketChannel sc = socketWrapper.getSocket().getIOChannel();
836 int interestOps = pe.getInterestOps();
837 if (sc == null) {
838 if (log.isDebugEnabled()) {
839 log.debug(sm.getString("endpoint.nio.nullSocketChannel"));
840 }
841 socketWrapper.close();
842 } else if (interestOps == OP_REGISTER) {
843 try {
844 sc.register(getSelector(), SelectionKey.OP_READ, socketWrapper);
845 } catch (Exception e) {
846 log.error(sm.getString("endpoint.nio.registerFail"), e);
847 }
848 } else {
849 final SelectionKey key = sc.keyFor(getSelector());
850 if (key == null) {
851 // The key was cancelled (e.g. due to socket closure)
852 // and removed from the selector while it was being
853 // processed. Count down the connections at this point
854 // since it won't have been counted down when the socket
855 // closed.
856 socketWrapper.close();
857 } else {
858 final NioSocketWrapper attachment = (NioSocketWrapper) key.attachment();
859 if (attachment != null) {
860 // We are registering the key to start with, reset the fairness counter.
861 try {
862 int ops = key.interestOps() | interestOps;
863 attachment.interestOps(ops);
864 key.interestOps(ops);
865 } catch (CancelledKeyException ckx) {
866 socketWrapper.close();
867 }
868 } else {
869 socketWrapper.close();
870 }
871 }
872 }
873 if (running && eventCache != null) {
874 pe.reset();
875 eventCache.push(pe);
876 }
877 }
878
879 return result;
880 }
881
882 /**
883 * Registers a newly created socket with the poller.

Callers 1

runMethod · 0.95

Calls 15

getSocketWrapperMethod · 0.95
getInterestOpsMethod · 0.95
getSelectorMethod · 0.95
interestOpsMethod · 0.95
resetMethod · 0.95
isDebugEnabledMethod · 0.65
debugMethod · 0.65
getStringMethod · 0.65
closeMethod · 0.65
errorMethod · 0.65
pushMethod · 0.65
sizeMethod · 0.45

Tested by

no test coverage detected