You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ra...@apache.org on 2012/10/25 04:55:17 UTC
svn commit: r1401959 - in
/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl:
ConnectorImpl.java DriverImpl.java
Author: rajith
Date: Thu Oct 25 02:55:17 2012
New Revision: 1401959
URL: http://svn.apache.org/viewvc?rev=1401959&view=rev
Log:
PROTON-66 We now register for WRITE_OP if we are unable to write to the
channel. As soon we are successful in writing we deregister the WRITE_OP.
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ConnectorImpl.java
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/DriverImpl.java
Modified: qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ConnectorImpl.java?rev=1401959&r1=1401958&r2=1401959&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ConnectorImpl.java (original)
+++ qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ConnectorImpl.java Thu Oct 25 02:55:17 2012
@@ -96,11 +96,7 @@ class ConnectorImpl<C> implements Connec
{
read();
}
-
- if (_key.isWritable())
- {
- write();
- }
+ write();
}
void read()
@@ -154,6 +150,14 @@ class ConnectorImpl<C> implements Connec
_writeBuffer.clear();
_bytesNotWritten = 0;
}
+ if (_bytesNotWritten > 0) // couldn't write all the data, need to know when we could write again.
+ {
+ _key.interestOps(_key.interestOps() | SelectionKey.OP_WRITE);
+ }
+ else if ((_key.interestOps() & SelectionKey.OP_WRITE) != 0)
+ {
+ _key.interestOps(_key.interestOps() & ~SelectionKey.OP_WRITE);
+ }
}
}
catch (IOException e)
Modified: qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/DriverImpl.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/DriverImpl.java?rev=1401959&r1=1401958&r2=1401959&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/DriverImpl.java (original)
+++ qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/DriverImpl.java Thu Oct 25 02:55:17 2012
@@ -216,7 +216,7 @@ public class DriverImpl implements Drive
public <C> Connector<C> createConnector(SelectableChannel c, C context)
{
- SelectionKey key = registerInterest(c,SelectionKey.OP_READ | SelectionKey.OP_WRITE);
+ SelectionKey key = registerInterest(c,SelectionKey.OP_READ);
Connector<C> co = new ConnectorImpl<C>(this, null, new SaslClientImpl(),(SocketChannel)c, context, key);
key.attach(co);
return co;
@@ -224,7 +224,7 @@ public class DriverImpl implements Drive
protected <C> Connector<C> createServerConnector(SelectableChannel c, C context, Listener<C> l)
{
- SelectionKey key = registerInterest(c,SelectionKey.OP_READ | SelectionKey.OP_WRITE);
+ SelectionKey key = registerInterest(c,SelectionKey.OP_READ);
Connector<C> co = new ConnectorImpl<C>(this, l, new SaslServerImpl(),(SocketChannel)c, context, key);
key.attach(co);
return co;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org