Author: elecharny Date: Mon Feb 22 08:38:06 2010 New Revision: 912511 URL: http://svn.apache.org/viewvc?rev=912511&view=rev Log: O Mior code refactoring
Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java?rev=912511&r1=912510&r2=912511&view=diff ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java Mon Feb 22 08:38:06 2010 @@ -830,6 +830,7 @@ try { // Clear OP_WRITE setInterestedInWrite(session, false); + do { // Check for pending writes. req = session.getCurrentWriteRequest(); Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java?rev=912511&r1=912510&r2=912511&view=diff ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java Mon Feb 22 08:38:06 2010 @@ -191,18 +191,25 @@ } @Override - protected void setInterestedInWrite(NioSession session, boolean interested) + protected void setInterestedInWrite(NioSession session, boolean isInterested) throws Exception { SelectionKey key = session.getSelectionKey(); + if (key == null) { return; } - if (interested) { - key.interestOps(key.interestOps() | SelectionKey.OP_WRITE); + int newInterestOps = key.interestOps(); + + if (isInterested) { + newInterestOps |= SelectionKey.OP_WRITE; + //newInterestOps &= ~SelectionKey.OP_READ; } else { - key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE); + newInterestOps &= ~SelectionKey.OP_WRITE; + //newInterestOps |= SelectionKey.OP_READ; } + + key.interestOps(newInterestOps); } @Override Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java?rev=912511&r1=912510&r2=912511&view=diff ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java Mon Feb 22 08:38:06 2010 @@ -252,18 +252,22 @@ protected void setInterestedInWrite(NioSession session, boolean isInterested) throws Exception { SelectionKey key = session.getSelectionKey(); - int oldInterestOps = key.interestOps(); - int newInterestOps = oldInterestOps; + + if (key == null) { + return; + } + + int newInterestOps = key.interestOps(); if (isInterested) { newInterestOps |= SelectionKey.OP_WRITE; + //newInterestOps &= ~SelectionKey.OP_READ; } else { newInterestOps &= ~SelectionKey.OP_WRITE; + //newInterestOps |= SelectionKey.OP_READ; } - if (oldInterestOps != newInterestOps) { - key.interestOps(newInterestOps); - } + key.interestOps(newInterestOps); } @Override