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


Reply via email to