On 10/1/07, James Apfel <[EMAIL PROTECTED]> wrote:
> Hi,
>
> my ProtocolEncoder encodes a Message into many ByteBuffer(s) and I wrap them
> currently into a single ByteBuffer which I'm writing to
> ProtocolEncoderOutput. I'm however wondering if it's OK to write the
> ByteBuffer(s) straight to ProtocolEncoderOutput? I'm concerned about
> Threading issues (i.e. does MINA preserve the writing order of the
> ByteBuffers if I call IoSession.write(Message) from different Threads)!?

Every session has its internal queue to maintain the sequence of write
operations.  Therefore, you are OK to call
ProtocolEncoderOutput.write() many times in a single call.  Of course,
you might need synchronization if you implemented your own IoFilter
that employs your own thread model.  As long as you use the default
ExecutorFilter (or no ExecutorFilter), it's safe.

Please note three write() operation means three SocketChannl.write
calls.  If you want just one call, you can call mergeAll() method in
ProtocolEncoderOutput.

HTH,
Trustin
-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6

Reply via email to