summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAidan Skinner <aidan@apache.org>2009-09-18 12:54:23 +0000
committerAidan Skinner <aidan@apache.org>2009-09-18 12:54:23 +0000
commit2296769193754d1bc09e1dc3b998709a5808ecbb (patch)
tree8e4fbcad31f29825caa8b25c02766ae153d141be
parent7d6a028be9f6c47418e98a6fa74a359864428150 (diff)
downloadqpid-python-2296769193754d1bc09e1dc3b998709a5808ecbb.tar.gz
QPID-2104 AMQProtocolHandler: hand the actual write off to a seperate thread
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-network-refactor@816612 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
index be75fc150f..06a1fe2696 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
@@ -564,9 +564,16 @@ public class AMQProtocolHandler implements ProtocolEngine
public void writeFrame(AMQDataBlock frame, boolean wait)
{
- ByteBuffer buf = frame.toNioByteBuffer();
+ final ByteBuffer buf = frame.toNioByteBuffer();
_writtenBytes += buf.remaining();
- _networkDriver.send(buf);
+ Job.fireAsynchEvent(_poolReference.getPool(), _writeJob, new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ _networkDriver.send(buf);
+ }
+ });
if (PROTOCOL_DEBUG)
{
_protocolLogger.debug(String.format("SEND: [%s] %s", this, frame));