Author: trustin
Date: Sat Mar 19 19:14:40 2005
New Revision: 158285
URL: http://svn.apache.org/viewcvs?view=rev&rev=158285
Log:
Fixed spinning loop while kernel socket buffer is full.
Modified:
directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java
Modified:
directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java
URL:
http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java?view=diff&r1=158284&r2=158285
==============================================================================
---
directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java
(original)
+++
directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java
Sat Mar 19 19:14:40 2005
@@ -439,6 +439,13 @@
}
finally
{
+ if( writtenBytes > 0 )
+ {
+ session.increaseWrittenBytes( writtenBytes );
+ session.setIdle( IdleStatus.BOTH_IDLE, false );
+ session.setIdle( IdleStatus.WRITER_IDLE, false );
+ }
+
SelectionKey key = session.getSelectionKey();
if( buf.hasRemaining() )
{
@@ -446,18 +453,12 @@
key
.interestOps( key.interestOps()
| SelectionKey.OP_WRITE );
+ break;
}
else
{
key.interestOps( key.interestOps()
& ( ~SelectionKey.OP_WRITE ) );
- }
-
- if( writtenBytes > 0 )
- {
- session.increaseWrittenBytes( writtenBytes );
- session.setIdle( IdleStatus.BOTH_IDLE, false );
- session.setIdle( IdleStatus.WRITER_IDLE, false );
}
}
}