}
void doWrite( IoSession session )
{
IoProtocolSession psession = getProtocolSession( session );
ProtocolEncoder encoder = psession.encoder;
Queue writeQueue = psession.writeQueue;
if( writeQueue.isEmpty() )
{
return;
}
try
{
while( !writeQueue.isEmpty() )
{
synchronized( writeQueue )
{
Object message = writeQueue.pop();
if( message == null )
break;
Queue queue = psession.encOut.getBufferQueue();
encoder.encode( psession, message, psession.encOut );
for( ;; )
{
ByteBuffer buf = ( ByteBuffer ) queue.pop();
if( buf == null )
break;