You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/09/27 12:43:48 UTC

svn commit: r579971 - /mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java

Author: trustin
Date: Thu Sep 27 03:43:44 2007
New Revision: 579971

URL: http://svn.apache.org/viewvc?rev=579971&view=rev
Log:
Fixed issue: DIRMINA-442 (high cpu load (50% cpu on dual core) with only one active connection)
* Fixed setReadOps and setWriteOps in NioProcessor; it always turned the flag on.

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java

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=579971&r1=579970&r2=579971&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 Thu Sep 27 03:43:44 2007
@@ -137,14 +137,22 @@
     @Override
     protected void setOpRead(IoSession session, boolean value) throws Exception {
         SelectionKey key = getSelectionKey(session);
-        key.interestOps(key.interestOps() | SelectionKey.OP_READ);
+        if (value) {
+            key.interestOps(key.interestOps() | SelectionKey.OP_READ);
+        } else {
+            key.interestOps(key.interestOps() & ~SelectionKey.OP_READ);
+        }
     }
 
     @Override
     protected void setOpWrite(IoSession session, boolean value)
             throws Exception {
         SelectionKey key = getSelectionKey(session);
-        key.interestOps(key.interestOps() | SelectionKey.OP_WRITE);
+        if (value) {
+            key.interestOps(key.interestOps() | SelectionKey.OP_WRITE);
+        } else {
+            key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE);
+        }
     }
 
     @Override