final WriteRequestQueue writeBufferQueue = new WriteRequestQueue();
final boolean offered = channel.writeBufferQueue.offer(event); assert offered; channel.worker.writeFromUserCode(channel);
evt = writeBuffer.poll(); if (evt == null) { break;
public final Queue<MessageEvent> writeBufferQueue = new WriteRequestQueue();
protected AbstractNioChannel( Integer id, Channel parent, ChannelFactory factory, ChannelPipeline pipeline, ChannelSink sink, AbstractNioWorker worker, C ch) { super(id, parent, factory, pipeline, sink); this.worker = worker; channel = ch; writeBufferQueue = new WriteRequestQueue(new ArrayDeque<>(16)); }
protected AbstractNioChannel( Channel parent, ChannelFactory factory, ChannelPipeline pipeline, ChannelSink sink, AbstractNioWorker worker, C ch, boolean concurrent) { super(parent, factory, pipeline, sink); this.worker = worker; channel = ch; // note: ArrayDeque for cases where we always write from the same I/O worker thread writeBufferQueue = new WriteRequestQueue(concurrent ? new ConcurrentLinkedQueue<>() : new ArrayDeque<>(16)); }
try { if (evt == null) { if ((channel.currentWriteEvent = evt = writeBuffer.poll()) == null) { removeOpWrite = true; channel.writeSuspended = false;
SocketSendBufferPool.SendBuffer buf; if (evt == null) { if ((channel.currentWriteEvent = evt = writeBuffer.poll()) == null) { removeOpWrite = true; channel.writeSuspended = false;
MessageEvent event = (MessageEvent) e; NioSocketChannel channel = (NioSocketChannel) event.getChannel(); boolean offered = channel.writeBufferQueue.offer(event); assert offered; channel.worker.writeFromUserCode(channel);
MessageEvent event = (MessageEvent) e; NioSocketChannel channel = (NioSocketChannel) event.getChannel(); boolean offered = channel.writeBufferQueue.offer(event); assert offered; channel.worker.writeFromUserCode(channel);