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